Il miglior tutorial pattern matching Scala Nel 2024, in questo tutorial puoi imparare Utilizzare la classe di esempio,
Scala fornisce un modello potente corrispondenza meccanismo, è anche ampiamente utilizzato.
Un pattern matching contiene una serie di alternative, ciascuna delle quali inizia con uncaso parola chiave.Ciascuno contiene un'opzione di backup e un motivo ad una pluralità di espressioni. Freccia simbolo=> separa i modelli e le espressioni.
Il seguente è un valore intero semplice pattern matching Esempio:
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" } }
L'attuazione del codice di cui sopra, l'output è:
$ scalac Test.scala $ scala Test many
corrispondere al corrispondente Java nello switch, ma scritta dopo l'espressione del selettore.Vale a dire: Selettore partita {} alternative.
Con ordinanza espressioni per abbinare il codice scritto per provare ogni modalità per completare il calcolo, se trovano c'è un caso di corrispondenza, che corrisponde al resto del caso non continuerà.
Prossimo guardiamo a un diverso tipo di dati di pattern matching:
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" } }
L'attuazione del codice di cui sopra, l'output è:
$ scalac Test.scala $ scala Test 2 many one scala.Int
Esempi del primo caso corrisponde ad un valore intero di 1, secondo caso corrisponde al valore di stringa di due, il secondo caso corrisponde al valore della stringa di due, il terzo caso corrisponde al tipo di modello utilizzato per determinare se il valore passato in tutta tipo, utilizzare isInstanceOf confronto per determinare il tipo, pattern matching è meglio. Il quarto caso indica il full-partita alternative predefinite, quella partita non si trova in un altro match, un interruttore simile a default.
Utilizzare il caso parola chiave è la definizione di classe è una lezione di prova (classi case), lezione di prova è una classe speciale, ottimizzata per il pattern matching.
Quanto segue è un semplice esempio di una classe di esempio:
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) }
L'attuazione del codice di cui sopra, l'output è:
$ scalac Test.scala $ scala Test Hi Alice! Hi Bob! Age: 32 year, name: Charlie?
Quando si dichiara una classe di esempio, la seguente procedura avviene automaticamente: