在Crystal中编写等效代数数据类型的惯用方法是什么?例如在Haskell我可能有
data Stage = StageInitial String | StageFinished String
Run Code Online (Sandbox Code Playgroud)
所以我希望有两个阶段,每个阶段都有一个字符串有效负载.后来我想在舞台上进行模式匹配.
你怎么用水晶写这个?
你可以粗略地模仿它
record StageInitial, data : String
record StageFinished, data : String
alias Stage = StageInitial | StageFinished
Run Code Online (Sandbox Code Playgroud)
然后模式匹配case.
然而,这不是一种在Crystal中构造它的特殊惯用方法,因此您可能会在以后遇到摩擦.