【发布时间】:2019-06-28 19:16:22
【问题描述】:
我想知道是否有办法制作像 Int 类型的东西,它只能表示数字的某个子集(如 0 ~ 29),如果你尝试用它做任何其他事情,编译器会抛出错误.
我知道我可以做类似type MoonPhaseDay = Day1|Day2| ... |Day29 的事情,但这并不能扩展到更大的范围。
我试图牢记“使不可能的状态无法表示”的建议。我可以通过Int 解决问题,但我很好奇是否有更好的方法。
【问题讨论】:
-
看看youtube.com/watch?v=XpDsk374LDE&t=2454s,因为 Evan 提供了一个非常相似的例子