Enums - Squeng/Polyglot GitHub Wiki

Scala has built-in support for enumerations, where the initial constant is assigned an ordinal of zero:

enum PlainIssueSize:
  case XS, S, M, L, XL

enum ParameterizedIssueSize(val toolTip: String):
  case XS extends ParameterizedIssueSize("extra small")
  case S  extends ParameterizedIssueSize("small")
  case M  extends ParameterizedIssueSize("medium")
  case L  extends ParameterizedIssueSize("large")
  case XL extends ParameterizedIssueSize("extra large")

Java has built-in support for enumerations, where the initial constant is assigned an ordinal of zero:

public enum PlainIssueSize {
  XS, S, M, L, XL
}

public enum ParameterizedIssueSize {
    XS("extra small"), S("small"), M("medium"), L("large"), XL("extra large");
    
    private final String toolTip;
    
    ParameterizedIssueSize(String toolTip) {
        this.toolTip = toolTip;
    }
    
    public String getToolTip() {
        return toolTip;
    }
}

Python has module-based support for enumerations:

from enum import Enum

class PlainIssueSize(Enum):
    XS = 0
    S = 1
    M = 2
    L = 3
    XL = 4

class ParameterizedIssueSize(Enum):
    XS = 0, 'extra small'
    S = 1, 'small'
    M = 2, 'medium'
    L = 3, 'large'
    XL = 4, 'extra large'