首页 文章

水晶相当于代数数据类型

提问于
浏览
3

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

data Stage = StageInitial String | StageFinished String

所以我希望有两个阶段,每个阶段都有一个字符串有效负载 . 后来我想在舞台上进行模式匹配 .

你怎么用水晶写这个?

1 回答

  • 6

    你可以粗略地模仿它

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

    然后模式匹配 case .

    然而,这不是一种在Crystal中构造它的特殊惯用方法,因此您可能会在以后遇到摩擦 .

相关问题