我是新來的Scala,剛開始學習它今天。我想知道如何在Scala中初始化一個數組。在Scala中初始化數組
實施例的Java代碼
String[] arr = { "Hello", "World" };
什麼是Scala上述代碼的等效?
我是新來的Scala,剛開始學習它今天。我想知道如何在Scala中初始化一個數組。在Scala中初始化數組
實施例的Java代碼
String[] arr = { "Hello", "World" };
什麼是Scala上述代碼的等效?
scala> val arr = Array("Hello","World")
arr: Array[java.lang.String] = Array(Hello, World)
附加到瓦西爾的回答是:如果你給一個斯卡拉集合的值,你可以寫
val list = List(1,2,3,4,5)
val arr = Array[Int](list:_*)
println(arr.mkString)
但通常指定者方法更得心應手:
val list = List(1,2,3,4,5)
val arr = list.toArray
println(arr.mkString)
要初始化一個填充零的數組,可以使用:
> Array.fill[Byte](5)(0)
Array(0, 0, 0, 0, 0)
這相當於Java的new byte[5]
。
只是FYI,列出一個等價的初始化'List.fill(5) (0)',甚至接受函數。 'List.fill(5)(myFunc的())' – cevaris 2015-07-10 17:06:03
也可以用填充物做更多的動態插入,例如
Array.fill(10){scala.util.Random.nextInt(5)}
==>
Array[Int] = Array(0, 1, 0, 0, 3, 2, 4, 1, 4, 3)
如果你知道數組的長度,但你不知道它的內容,你可以使用
val length = 5
val temp = Array.ofDim[String](length)
如果你想有兩個維度數組,但你不知道它的內容,你可以用
val row = 5
val column = 3
val temp = Array.ofDim[String](row, column)
當然,您可以將字符串更改爲其他類型。
如果你已經知道它的內容,你可以使用
val temp = Array("a", "b")
宣佈多維數組的另一種方式:
Array.fill(4,3)("")
res3: Array[Array[String]] = Array(Array("", "", ""), Array("", "", ""),Array("", "", ""), Array("", "", ""))
這個答案還沒有解釋如何初始化斯卡拉多維數組(這是在這裏解決:http://stackoverflow.com/questions/13862568/initializing-a-2d-multi-dimensional-array-in-scala) – 2013-06-14 22:50:35