如何从 Enum Scala3 中随机选择元素

Posted

技术标签:

【中文标题】如何从 Enum Scala3 中随机选择元素【英文标题】:How to Random Choice element from Enum Scala3 【发布时间】:2021-12-31 12:58:46 【问题描述】:

我的问题很简单。我有以下内容:

enum Colors:
  case Blue, Red, Green

如何从这个枚举中选择一个随机元素?我尝试了this question 的解决方案,但没有成功。

【问题讨论】:

【参考方案1】:
enum Colors:
  case Blue, Red, Green

@main def run: Unit = 
  import scala.util.Random

  val mycolor = Colors.values

  println(Random.shuffle(mycolor).head)

【讨论】:

【参考方案2】:

您可以使用Random.nextInt 生成随机枚举值的索引。

这样可以避免打乱Array 的值,并且只生成一个随机数。

import scala.util.Random

enum Colors:
  case Blue, Red, Green

object Colors:
  private final val colors = Colors.values

  def random: Colors = colors(Random.nextInt(colors.size))

@main def run: Unit =
  println(Colors.random)

【讨论】:

以上是关于如何从 Enum Scala3 中随机选择元素的主要内容,如果未能解决你的问题,请参考以下文章