T-10 Blöcke, Funktionen und Methoden ==================================== Blöcke ------ :: println({ val x = 1 + 1 x + 1 }) Es wird jeweils der letzte Ausdruck zurückgegeben. Im obigen Beispiel also *3*. Funktionen ---------- :: (x: Int) => x + 1 Obige Funktion trägt keinen Namen, man nennt solche Funktionen auch *anonyme Funktionen*. Funktionen können aber auch Namen haben, z.B. *addOne*: :: val addOne = (x: Int) => x + 1 println(addOne(1)) // 2 und mehrere Parameter aufnehmen: :: val add = (x: Int, y: Int) => x + y println(add(1, 2)) // 3 oder auch keine Parameter: :: val getTheAnswer = () => 42 println(getTheAnswer()) // 42 Methoden -------- Methoden sind ähnlich wie Funktionen, mit einigen Unterschieden. z.B. eine Methode wird über den Befehl *def* definiert. :: def add(x: Int, y: Int): Int = x + y println(add(1, 2)) // 3 Eine Methode enthält einen Namen, eine Paramter-Liste, Rückgabe-Typ und einen Code-Teil (Body): :: def getSquareString(input: Double): String = { val square = input * input square.toString } Das Resultat einer Methode ist jeweils der letzte Ausdruck in der Methode. Es gibt aber auch den Befehl *return*, mit dem man ein Resultat zurückgeben kann, wird aber in Scala selten eingesetzt. Auch Operatoren sind Methoden: z.B.: :: 1 + 1 ist dasselbe wie: :: 1.+(1) Es gibt dann auch noch die spezielle *main* Methode, die als Startpunkt eines Scala-Programmes gilt: :: object MeineApp { def main(args: Array[String]): Unit = println("Hello, Scala developer!") }