加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-16 18:32:16 所属栏目:安全 来源:网络整理
导读:在 Scala 2.7中,Enumeration提供Set32 / Set64来构建枚举集,并轻松获取Long / Int中的按位值,或者从Long / Int值(简化数据库存储)中构建枚举值. Scala 2.8删除了这些类. 2.8 lib中有替代品吗? 解决方法 该表示非常容易实现,您应该自己执行此操作,因为Scala
在 Scala 2.7中,Enumeration提供Set32 / Set64来构建枚举集,并轻松获取Long / Int中的按位值,或者从Long / Int值(简化数据库存储)中构建枚举值. Scala 2.8删除了这些类. 2.8 lib中有替代品吗?

解决方法

该表示非常容易实现,您应该自己执行此操作,因为Scala库的内部实现可能会更改并且您的数据将被破坏:

object WeekDay extends Enumeration {
     type WeekDay = Value
     val Mon,Tue,Wed,Thu,Fri,Sat,Sun = Value
}
import WeekDay._
val values = Set(Mon,Fri)
require(values.length < 31)
(0 /: values) ((s,c) => s | 1 << c.id).toBinaryString

请记住,在数据库中存储序号是脆弱的:Storing EnumSet in a database?.您应该为每个值选择一个稳定的序数.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读