以下代码创建一个临时向量:
0.to(15).map(f).toArray
^^^^^^^^
Sequence
^^^^^^^^^^^^^^^
temp Vector
^^^^^^^^^^^^^^^^^^^^^^^
Array
以下代码创建一个临时数组:
0.to(15).toArray.map(f)
^^^^^^^^
Sequence
^^^^^^^^^^^^^^^
temp Array
^^^^^^^^^^^^^^^^^^^^^^^
Array
有没有办法将 f 映射到 Sequence 并直接获得一个数组,而不产生临时的?
最佳答案
您可以使用 breakOut
:
val res: Array[Int] = 0.to(15).map(f)(scala.collection.breakOut)
或者
0.to(15).map[Int, Array[Int]](f)(scala.collection.breakOut)
或使用
view
:0.to(15).view.map(f).to[Array]
见 this document有关 View 的更多详细信息。
关于arrays - 将 Range 直接映射到 Array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46077033/