如何在Scala 2.8中获取枚举集的Long/Int值

如何在Scala 2.8中获取枚举集的Long/Int值,scala,enumeration,Scala,Enumeration,在Scala 2.7中,枚举提供Set32/Set64来构建枚举集,并可以轻松地从Long/Int值中获取Long/Int或build enum集中的按位值(这简化了数据库存储)。Scala 2.8删除了这些类。2.8 lib中是否有替换版本?表示形式很容易实现,您应该自己实现,因为Scala libs的内部实现可能会更改,并且您的数据可能会被破坏: object WeekDay extends Enumeration { type WeekDay = Value val M

在Scala 2.7中,枚举提供Set32/Set64来构建枚举集,并可以轻松地从Long/Int值中获取Long/Int或build enum集中的按位值(这简化了数据库存储)。Scala 2.8删除了这些类。2.8 lib中是否有替换版本?

表示形式很容易实现,您应该自己实现,因为Scala libs的内部实现可能会更改,并且您的数据可能会被破坏:

object WeekDay extends Enumeration {
     type WeekDay = Value
     val Mon, Tue, Wed, Thu, Fri, Sat, Sun = Value
}
import WeekDay._
val values = Set(Mon,Wed,Fri)
require(values.length < 31)
(0 /: values) ((s, c) => s | 1 << c.id).toBinaryString
对象工作日扩展枚举{
键入WeekDay=Value
周一、周二、周三、周四、周五、周六、周日=价值
}
导入工作日_
val值=设置(周一、周三、周五)
要求(值。长度<31)

(0/:值)((s,c)=>s | 1
/:
等同于
foldLeft