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?

Jawaban:



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].


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)

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)

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")

10

Cara lain untuk mendeklarasikan array multi-dimensi:

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

res3: Array[Array[String]] = Array(Array("", "", ""), Array("", "", ""),Array("", "", ""), Array("", "", ""))
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.