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

如何有效地从scala中的枚举中选择一个随机元素?

发布时间:2020-12-16 18:08:34 所属栏目:安全 来源:网络整理
导读:我有这样的枚举: object Animals extends Enumeration { type Animals = Value val Monkey = Value("Monkey") val Lion = Value("Lion") val Dog = Value("Dog") val Cat = Value("Cat")} 我需要从这个枚举中随机选择一个元素.我怎样才能在scala中有效地做
我有这样的枚举:

object Animals extends Enumeration {
  type Animals = Value
  val Monkey = Value("Monkey")
  val Lion = Value("Lion")
  val Dog = Value("Dog")
  val Cat = Value("Cat")
}

我需要从这个枚举中随机选择一个元素.我怎样才能在scala中有效地做到这一点?

解决方法

不到一分钟的 documentation节目

final def maxId:Int

The one higher than the highest integer amongst those used to identify values in this enumeration.

final def apply(x:Int):Value

The value of this enumeration with given id x

所以

Animals(scala.util.Random.nextInt(Animals.maxId))
//> res0: recursion.recursion.Animals.Value = Monkey

(假设使用了所有值,并且您没有将初始值传递给构造函数)

或者您可以使用Animals.values枚举值,然后参考this question

(编辑:李大同)

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

    推荐文章
      热点阅读