如何在scala中有效地从枚举中选取随机元素?
我有这样一个枚举:如何在scala中有效地从枚举中选取随机元素?,scala,random,enums,Scala,Random,Enums,我有这样一个枚举: object Animals extends Enumeration { type Animals = Value val Monkey = Value("Monkey") val Lion = Value("Lion") val Dog = Value("Dog") val Cat = Value("Cat") } 我需要从这个枚举中随机选取一个元素。我如何在scala中有效地做到这一点?不到一分钟的节目时间 final def maxId:Int 高
object Animals extends Enumeration {
type Animals = Value
val Monkey = Value("Monkey")
val Lion = Value("Lion")
val Dog = Value("Dog")
val Cat = Value("Cat")
}
我需要从这个枚举中随机选取一个元素。我如何在scala中有效地做到这一点?不到一分钟的节目时间
final def maxId:Int
高于此枚举中用于标识值的整数中最高整数的整数
及
final def apply(x:Int):值
具有给定id x的此枚举的值
所以
(假设使用了所有值,并且没有将初始值传递给构造函数)
或者,您可以使用Animals.values
枚举值,然后参考
Animals(scala.util.Random.nextInt(Animals.maxId))
//> res0: recursion.recursion.Animals.Value = Monkey