【发布时间】:2019-11-05 04:37:07
【问题描述】:
我想创建一个大小始终等于 3 的 Ints 的 Seq。如果一个数字介于 0 到 10 之间,那么我想始终返回一个具有 3 个相同数字的 Seq。如果数字来自其他范围,那么我想返回 3 个随机数的 Seq,但没有重复。我为此创建了一个代码:
object Simulator {
def toSeq(value: => Int): Seq[Int] = Seq.fill(3)(value)
def shuffle(): Seq[Int] = {
val seq = 0 to 100
val number = Random.nextInt(seq.length)
number match {
case _ if 0 to 10 contains number => toSeq(number)
case _ => toSeq(Random.nextInt(seq.count(_ != number)))
}
}
}
但在第二种情况下,我可以随机化 1、2 或 3 个相同的数字,然后我的 Seq 的大小为 1 或 2(删除重复项后)。如何将此代码更改为类似但始终返回长度为 3 的 Seq?
【问题讨论】: