gpt4 book ai didi

scala - 如何建模类型安全的枚举类型?

转载 作者:行者123 更新时间:2023-12-03 04:00:29 27 4
gpt4 key购买 nike

Scala 不像 Java 那样具有类型安全的enum。给定一组相关常量,Scala 中表示这些常量的最佳方式是什么?

最佳答案

我必须说,上面 skaffman 从 Scala 文档中复制的示例在实践中作用有限(您不妨使用 case 对象s)。

为了获得最类似于 Java Enum 的东西(即使用合理的 toStringvalueOf 方法——也许你正在坚持数据库的枚举值)您需要对其进行一些修改。如果您使用过 skaffman 的代码:

WeekDay.valueOf("Sun") //returns None
WeekDay.Tue.toString //returns Weekday(2)

而使用以下声明:

object WeekDay extends Enumeration {
type WeekDay = Value
val Mon = Value("Mon")
val Tue = Value("Tue")
... etc
}

您会得到更合理的结果:

WeekDay.valueOf("Sun") //returns Some(Sun)
WeekDay.Tue.toString //returns Tue

关于scala - 如何建模类型安全的枚举类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1321745/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com