Scala-使用随机数元组创建seq
我想得到如下信息:Scala-使用随机数元组创建seq,scala,Scala,我想得到如下信息: Seq((1,2),(42,45),(54,52),…)。 换句话说,我想用随机整数对创建长度n的Seq 我试着做一些类似的事情: (1到n).toSeq.map(->(scala.util.random.nextingeger(),scala.util.random.nextingeger()) 但是,它返回一些IndexedSeq,而不是Seq 有人能帮我吗?如评论中所述,它返回IndexedSeq是可以的,因为这是Seq的子类型。但是Scala有一个名为fill的库方法
Seq((1,2),(42,45),(54,52),…)。
换句话说,我想用随机整数对创建长度
n
的Seq
我试着做一些类似的事情:(1到n).toSeq.map(->(scala.util.random.nextingeger(),scala.util.random.nextingeger())
但是,它返回一些IndexedSeq
,而不是Seq
有人能帮我吗?如评论中所述,它返回
IndexedSeq
是可以的,因为这是Seq
的子类型。但是Scala有一个名为fill
的库方法,它可以满足您的需要:
Seq.fill(n)((scala.util.Random.nextInt(), scala.util.Random.nextInt()))
但是,最好明确您想要的实际类型(Vector
,List
等):
这仍然可以分配给
Seq
,但您可以为您的应用程序选择适当的实现。它不是“而是”。是Seq
的子类型。它只是提供了额外的信息,即索引访问是快速的。如果要删除过于精确的类型,可以使用。或将toSeq
放在映射之后。无论如何,这都不重要,你也不应该使用Seq。@LuisMiguelMejíaSuárez,那没有“帮助”:推断出的.toSeq
的类型最终是IndexedSeq
:)你说“无论如何都不应该使用Seq”是什么意思?@AndreyTyukin哦,不知道toSeq
没有返回Seq
,奇怪关于第二点,请参阅。您可能会发现,及其答案提供了信息。
Vector.fill(n)((scala.util.Random.nextInt(), scala.util.Random.nextInt()))