Mengapa tanda kurung?
Berikut adalah kutipan dari pemrograman buku di scala .
Gagasan penting lainnya yang diilustrasikan oleh contoh ini akan memberi Anda wawasan tentang mengapa array diakses dengan tanda kurung di Scala. Scala memiliki kasus khusus lebih sedikit daripada Jawa. Array hanyalah contoh kelas seperti kelas lain di Scala. Ketika Anda menerapkan tanda kurung yang mengelilingi satu atau lebih nilai ke suatu variabel, Scala akan mengubah kode menjadi doa metode yang bernama terapkan pada variabel itu. Jadi greetStrings (i) ditransformasikan menjadi greetStrings.apply (i). Jadi mengakses elemen array di Scala hanyalah pemanggilan metode seperti yang lainnya. Prinsip ini tidak terbatas pada array: setiap aplikasi objek ke beberapa argumen dalam tanda kurung akan ditransformasikan menjadi pemanggilan metode yang berlaku. Tentu saja ini akan dikompilasi hanya jika objek jenis itu benar-benar mendefinisikan metode yang berlaku. Jadi ini bukan kasus khusus; itu adalah aturan umum.
Berikut adalah beberapa contoh cara menarik elemen tertentu (elem pertama dalam kasus ini) menggunakan gaya pemrograman fungsional.
// Create a multdimension Array
scala> val a = Array.ofDim[String](2, 3)
a: Array[Array[String]] = Array(Array(null, null, null), Array(null, null, null))
scala> a(0) = Array("1","2","3")
scala> a(1) = Array("4", "5", "6")
scala> a
Array[Array[String]] = Array(Array(1, 2, 3), Array(4, 5, 6))
// 1. paratheses
scala> a.map(_(0))
Array[String] = Array(1, 4)
// 2. apply
scala> a.map(_.apply(0))
Array[String] = Array(1, 4)
// 3. function literal
scala> a.map(a => a(0))
Array[String] = Array(1, 4)
// 4. lift
scala> a.map(_.lift(0))
Array[Option[String]] = Array(Some(1), Some(4))
// 5. head or last
scala> a.map(_.head)
Array[String] = Array(1, 4)