2016-10-12 8 views
2

Ich bin neu in Scala und ich versuche herauszufinden, welche Prädikate sind und die richtige Art, sie zu verwenden. Die Informationen, die ich online gefunden habe, sind mir nicht sehr klar oder es setzt vorausgehende Kenntnisse von Prädikaten voraus. Kann jemand erklären, was sie sind und vielleicht ein paar Beispiele zeigen, wie man sie in Scala benutzt?Scala Prädikate

Antwort

5

Ein Prädikat ist eine Funktion, die eine zurückgibt.

Um beispielsweise zu prüfen, ob eine Ganzzahl gerade ist, können wir die Funktion isEven definieren.

scala> def isEven(i: Int) = i % 2 == 0 
isEven: (i: Int)Boolean 

Sie verhält sich wie erwartet.

scala> isEven(2) 
res1: Boolean = true 

So können Sie dann diese wie filter in eine Funktion übergeben, die eine Funktion übernimmt, die einen Booleschen Wert zurück. Die Typensignatur hierfür ist p: (A) ⇒ Boolean), wobei die Abkürzung für Prädikat ist.

scala> List(1,2,3,4,5,6,7,8,9,10).filter(isEven) 
res2: List[Int] = List(2, 4, 6, 8, 10) 

Siehe Scala School für einige gute Lektüre.