Crystal 相当于代数数据类型

Crystal equivalent to algebraic data types

在 Crystal 中编写等价于代数数据类型的惯用方法是什么?例如。在 Haskell 我可能

data Stage = StageInitial String | StageFinished String

所以我想要两个阶段,每个阶段都有一个字符串负载。稍后我想在舞台上进行模式匹配。

Crystal你会怎么写?

你可以粗略地模拟一下

record StageInitial, data : String
record StageFinished, data : String
alias Stage = StageInitial | StageFinished

然后模式匹配case