@H_502_3@
我有这样的枚举:
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
@H_502_3@
原文链接:https://www.f2er.com/scala/825197.html