Array menginisialisasi di Scala

115

Saya baru mengenal Scala, baru mulai mempelajarinya hari ini. Saya ingin tahu cara menginisialisasi array di Scala.

Contoh kode Java

String[] arr = { "Hello", "World" };

Apa padanan kode di atas di Scala?

Emil
sumber

Jawaban:

141
scala> val arr = Array("Hello","World")
arr: Array[java.lang.String] = Array(Hello, World)
Vasil Remeniuk
sumber
6
Jawaban ini belum menjelaskan cara menginisialisasi array multidimensi di Scala (yang dibahas di sini: stackoverflow.com/questions/13862568/… )
Anderson Green
108

Untuk menginisialisasi array yang diisi dengan nol, Anda dapat menggunakan:

> Array.fill[Byte](5)(0)
Array(0, 0, 0, 0, 0)

Ini setara dengan Java new byte[5].

Martin Konicek
sumber
3
FYI saja, Daftar sebagai penginisialisasi yang setara List.fill(5)(0), menerima fungsi genap. List.fill(5)(myFunc())
cevaris
39

Dapat juga melakukan init yang lebih dinamis dengan isian, mis

Array.fill(10){scala.util.Random.nextInt(5)} 

==>

Array[Int] = Array(0, 1, 0, 0, 3, 2, 4, 1, 4, 3)
Dino Fancellu
sumber
17

Tambahan untuk jawaban Vasil: Jika Anda memiliki nilai yang diberikan sebagai koleksi Scala, Anda dapat menulis

val list = List(1,2,3,4,5)
val arr = Array[Int](list:_*)
println(arr.mkString)

Tetapi biasanya metode toArray lebih berguna:

val list = List(1,2,3,4,5)
val arr = list.toArray
println(arr.mkString)
Landei
sumber
15

Jika Anda mengetahui panjang Array tetapi tidak mengetahui isinya, Anda dapat menggunakan

val length = 5
val temp = Array.ofDim[String](length)

Jika Anda ingin memiliki array dua dimensi tetapi Anda tidak tahu isinya, Anda dapat menggunakan

val row = 5
val column = 3
val temp = Array.ofDim[String](row, column)

Tentu saja, Anda dapat mengubah String ke tipe lain.

Jika Anda sudah tahu isinya, Anda bisa menggunakan

val temp = Array("a", "b")
Haimei
sumber
10

Cara lain untuk mendeklarasikan array multi-dimensi:

Array.fill(4,3)("")

res3: Array[Array[String]] = Array(Array("", "", ""), Array("", "", ""),Array("", "", ""), Array("", "", ""))
akshat thakar
sumber