指定した個数の何かが欲しいことがScalaではよくあります。
インデックスほしいとき
to
を使うと良いでしょう。
(0 to 10) map (n => s"count $n") // => Seq("count 0", "count 1", ..., "count 10")
個数だけ指定してインデックスいらないとき
Seq.fill
を使うと良いでしょう(暫定一位)。
文字数の短さで言うと Seq.fill(n)(..) もありますね
— TATSUNO Yasuhiro (@exoego) 2023年2月9日
val rands = Seq.fill(42)(scala.util.Random.nextInt()) rands // => Seq(123, 999, 323, 11, 983, ..., 234)
Iterator.fill
を使うと良いでしょう。
個数指定であれば Iterator.fill というのもあるのでご参考まで
— がくぞ (@gakuzzzz) 2023年2月9日
Iterator.fill(42)(scala.util.Random.nextInt())
val rands = Iterator.fill(42)(scala.util.Random.nextInt()) rands.toList // => List(123, 999, 323, 11, 983, ..., 234)
個数を制限したくないときはIterator.continually
使うと良いでしょう。
val rands = Iterator.continually(scala.util.Random.nextInt()).take(42) rands.toList // => List(123, 999, 323, 11, 983, ..., 234)
continually
は無限に続くIteratorを作るので、take
して欲しいだけ取出しましょう。
Any ideas?
もっとクールな方法があったら教えてくださいね。