Skip to content

38 Data enums ​

Enum alternatives may carry differently typed data.

norm
enum Result {
  Success(Integer count),
  Failure(String reason)
}

main() {
  Result first = Result.Success(count: 3)
  Result second = Result.Failure(reason: "empty")
  printLine(first == Result.Success(count: 3))
  printLine(second == Result.Failure(reason: "empty"))
}

Expected output:

text
true
true

Success carries an integer count, while Failure carries a string reason. Construction names the payload field, and each value retains which variant was constructed.

Try it: Create a second Success with a different count and compare it.

Precise rules: Reference.

Norm 0.25