Tutorial pencocokan pola scala Terbaik Pada tahun 2024, Dalam tutorial ini Anda dapat mempelajari Gunakan Contoh Kelas,
Scala menyediakan pola yang kuat mekanisme pencocokan, juga banyak digunakan.
Pola yang sama berisi serangkaian alternatif, yang masing-masing dimulai dengankasus kata kunci.Masing-masing berisi opsi cadangan dan pola untuk pluralitas ekspresi. Simbol panah=> memisahkan pola dan ekspresi.
Berikut ini adalah nilai integer Contoh pola sederhana yang cocok:
object Test { def main(args: Array[String]) { println(matchTest(3)) } def matchTest(x: Int): String = x match { case 1 => "one" case 2 => "two" case _ => "many" } }
Pelaksanaan kode di atas, output adalah:
$ scalac Test.scala $ scala Test many
cocok sesuai Java di switch, tetapi ditulis setelah ekspresi pemilih.Yaitu: Selector pertandingan {alternatif}.
Dengan urutan ekspresi untuk mencocokkan kode yang ditulis untuk mencoba setiap mode untuk menyelesaikan perhitungan, jika mereka menemukan ada kasus pencocokan, pencocokan sisa kasus ini tidak akan berlanjut.
Selanjutnya kita melihat tipe data yang berbeda dari pencocokan pola:
object Test { def main(args: Array[String]) { println(matchTest("two")) println(matchTest("test")) println(matchTest(1)) println(matchTest(6)) } def matchTest(x: Any): Any = x match { case 1 => "one" case "two" => 2 case y: Int => "scala.Int" case _ => "many" } }
Pelaksanaan kode di atas, output adalah:
$ scalac Test.scala $ scala Test 2 many one scala.Int
Contoh kasus pertama sesuai dengan nilai integer dari 1, kasus kedua sesuai dengan nilai string dari dua, kasus kedua sesuai dengan nilai string dari dua, kasus ketiga sesuai dengan jenis model yang digunakan untuk menentukan apakah nilai berlalu di seluruh Jenis, menggunakan isInstanceOf dibandingkan untuk menentukan jenis, pencocokan pola yang lebih baik. Kasus keempat menunjukkan default penuh pertandingan alternatif, pertandingan yang tidak ditemukan di pertandingan lain, saklar serupa di default.
Gunakan kasus kata kunci definisi kelas kelas sampel (kelas kasus), kelas sampel adalah kelas khusus, dioptimalkan untuk pencocokan pola.
Berikut ini adalah contoh sederhana dari kelas sampel:
object Test { def main(args: Array[String]) { val alice = new Person("Alice", 25) val bob = new Person("Bob", 32) val charlie = new Person("Charlie", 32) for (person <- List(alice, bob, charlie)) { person match { case Person("Alice", 25) => println("Hi Alice!") case Person("Bob", 32) => println("Hi Bob!") case Person(name, age) => println("Age: " + age + " year, name: " + name + "?") } } } // 样例类 case class Person(name: String, age: Int) }
Pelaksanaan kode di atas, output adalah:
$ scalac Test.scala $ scala Test Hi Alice! Hi Bob! Age: 32 year, name: Charlie?
Ketika Anda mendeklarasikan contoh kelas, prosedur berikut terjadi secara otomatis: