当前位置: 首页 > 知识库问答 >
问题:

如何从枚举Scala3中随机选择元素

司英彦
2023-03-14

我的问题很简单。我有以下几点:

scala prettyprint-override">enum Colors:
  case Blue, Red, Green

如何从该枚举中选择随机元素?我试着解决这个问题,但没有成功。

共有2个答案

景恩
2023-03-14
enum Colors:
  case Blue, Red, Green

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

  val mycolor = Colors.values

  println(Random.shuffle(mycolor).head)

傅献
2023-03-14

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

这样可以避免对值的数组进行无序排列,并且只生成一个随机数。

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)
 类似资料:
  • 微调器板条箱有一个枚举,其中包含大量可能的微调器。 这是枚举(跳过除顶部和底部4之外的所有值): 新微调器易于创建: 但是,我希望随机选择一个微调器,这是行不通的: 因为: 如何随机选择枚举值,并使用该值显示随机微调器?

  • 我需要java JAVA CODE中此解决方案的delphi解决方案

  • 问题内容: 如果我有这样的枚举: 随机挑选一个的最佳方法是什么?它不需要是生产质量的防弹产品,但是相当均匀的分配将是不错的选择。 我可以做这样的事情 但是有更好的方法吗?我觉得这是之前已解决的问题。 问题答案: 我唯一建议的是缓存结果,因为每个调用都会复制一个数组。另外,不要每次都创建一个。保持一个。除此之外,您在做什么都很好。所以:

  • 如果我有这样的枚举: 随机挑选的最佳方式是什么?它不需要是生产质量的防弹产品,但一个相当均匀的分布将是很好的。 我可以做这样的事 但是有没有更好的方法呢?我觉得这是以前解决过的问题。

  • 我正在编写一个二十一点游戏。我有一个所有可用牌类型的枚举。交易时,我想使用Random从枚举中随机选择一张牌给玩家。如何使用整数值对应枚举值?或者,我如何为该枚举的变量随机选择枚举值? 纸牌Enun:

  • 问题内容: 假设您有一些元素 并希望从中随机选择任何颜色。 我把颜色放进去 然后选择一个随机颜色,例如: 所有这些(虽然工作正常)似乎都不必要地复杂。有没有一种简单的方法来选择随机枚举元素? 问题答案: Java的枚举实际上是功能齐全的对象。您可以在声明中添加方法 它将允许您像这样使用它: