Emi*_*mil 113 scala array-initialization
我是Scala的新手,刚刚开始学习它.我想知道如何在Scala中初始化一个数组.
示例Java代码
String[] arr = { "Hello", "World" };
Run Code Online (Sandbox Code Playgroud)
Scala中上述代码的等价物是什么?
Vas*_*iuk 140
scala> val arr = Array("Hello","World")
arr: Array[java.lang.String] = Array(Hello, World)
Run Code Online (Sandbox Code Playgroud)
Mar*_*cek 102
要初始化一个用零填充的数组,您可以使用:
> Array.fill[Byte](5)(0)
Array(0, 0, 0, 0, 0)
Run Code Online (Sandbox Code Playgroud)
这相当于Java的new byte[5]
.
Din*_*llu 38
也可以用填充来做更多动态的内部,例如
Array.fill(10){scala.util.Random.nextInt(5)}
Run Code Online (Sandbox Code Playgroud)
==>
Array[Int] = Array(0, 1, 0, 0, 3, 2, 4, 1, 4, 3)
Run Code Online (Sandbox Code Playgroud)
Lan*_*dei 17
除了Vasil的答案之外:如果你有Scala集合给出的值,你可以写
val list = List(1,2,3,4,5)
val arr = Array[Int](list:_*)
println(arr.mkString)
Run Code Online (Sandbox Code Playgroud)
但通常toArray方法更方便:
val list = List(1,2,3,4,5)
val arr = list.toArray
println(arr.mkString)
Run Code Online (Sandbox Code Playgroud)
Hai*_*mei 14
如果你知道Array的长度,但你不知道它的内容,你可以使用
val length = 5
val temp = Array.ofDim[String](length)
Run Code Online (Sandbox Code Playgroud)
如果您想拥有两个维度数组,但您不知道其内容,则可以使用
val row = 5
val column = 3
val temp = Array.ofDim[String](row, column)
Run Code Online (Sandbox Code Playgroud)
当然,您可以将String更改为其他类型.
如果您已经了解其内容,则可以使用
val temp = Array("a", "b")
Run Code Online (Sandbox Code Playgroud)
声明多维数组的另一种方法:
Array.fill(4,3)("")
res3: Array[Array[String]] = Array(Array("", "", ""), Array("", "", ""),Array("", "", ""), Array("", "", ""))
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
127618 次 |
最近记录: |