如何从 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 中随机选择元素的主要内容,如果未能解决你的问题,请参考以下文章

如何从coredata swift中随机选择一个元素

如何从数组中删除随机元素。 Python

如何利用Python随机从list中挑选一个元素

如何从数组中随机选择四个元素而不用Java重复?

如何从 Python 中的数组中选择随机元素? [复制]

python:当您使用 random.choice(seq) 从序列中随机选择一个元素时如何知道索引