0Pricing
Scala for Backend Engineering & Functional Programming · Lektion

Ausdrücke statt Anweisungen

Alles gibt einen Wert zurück.

Ausdrücke statt Anweisungen ist eine kostenlose Scala for Backend Engineering & Functional Programming-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Scala for Backend Engineering & Functional Programming-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Scala for Backend Engineering & Functional Programming-Kurs umfasst insgesamt 4 Lektionen.

Alles ist ein Ausdruck

In vielen Sprachen sind if und Blöcke Anweisungen, die zwar etwas ausführen, aber keinen Wert liefern. In Scala sind sie Ausdrücke, die zu einem Wert ausgewertet werden.

Dieser Wandel steht im Mittelpunkt der funktionalen Programmierung mit Scala.

val max = if (3 > 2) 3 else 2

if als Ausdruck

Ein Scala-if/else gibt den Wert des ausgeführten Zweigs zurück. Sie können dieses Ergebnis direkt einer val zuweisen.

Sie benötigen keine veränderliche Variable, die Sie innerhalb der Zweige setzen.

object Main extends App {
  val temp = 18
  val label = if (temp > 20) "warm" else "cool"
  println(label)
}

Blöcke geben ihre letzte Zeile zurück

Ein Block { ... } ist selbst ein Ausdruck. Sein Wert entspricht dem Wert des letzten Ausdrucks in ihm.

Hier wird der Block zu 30 ausgewertet, das dadurch zum Wert von result wird.

object Main extends App {
  val result = {
    val a = 10
    val b = 20
    a + b
  }
  println(result)
}

Kein explizites return erforderlich

Da der Körper einer Methode ein Ausdruck ist, entspricht sein Wert einfach dem zuletzt ausgewerteten Ausdruck. Das Schlüsselwort return wird nur selten verwendet.

Beide folgenden Methoden verhalten sich gleich, aber die idiomatische Variante lässt return weg.

def double(x: Int) = x * 2
// instead of: def double(x: Int) = { return x * 2 }

Auch match ist ein Ausdruck

Pattern Matching mit match liefert ebenfalls einen Wert und eignet sich daher hervorragend, um Eingaben Ergebnissen zuzuordnen.

Jeder case-Zweig liefert den Wert für diesen Zweig.

object Main extends App {
  val day = 3
  val name = day match {
    case 1 => "Mon"
    case 3 => "Wed"
    case _ => "Other"
  }
  println(name)
}

Ausdrücke lassen sich kombinieren

Da Ausdrücke Werte zurückgeben, können Sie sie frei verschachteln und kombinieren.

Ein if kann das Argument einer Funktion oder Teil einer größeren Berechnung sein, ohne dass temporäre Variablen erforderlich sind.

object Main extends App {
  val n = 7
  println("sign: " + (if (n >= 0) "+" else "-"))
}

Anweisungen gibt es weiterhin

Nicht alles liefert einen nützlichen Wert. Operationen, die nur wegen ihrer Seiteneffekte ausgeführt werden, etwa println oder eine Zuweisung, werden zu Unit ausgewertet.

Das sind ausdrucksähnliche Anweisungen in Scala.

val x: Unit = println("hello") // value is ()

Vermeiden Sie var mit Ausdrücken

Mit dem ausdrucksorientierten Stil können Sie veränderliche var-Muster ersetzen. Statt eine var zu deklarieren und sie in den Zweigen zuzuweisen, weisen Sie das gesamte if einer val zu.

object Main extends App {
  val score = 85
  val grade = if (score >= 90) "A" else if (score >= 80) "B" else "C"
  println(grade)
}

for liefert Werte

Ein for mit yield ist ein Ausdruck, der eine neue Collection erstellt, statt lediglich Schleifen wegen ihrer Seiteneffekte auszuführen.

So wird die Iteration zu einer Transformation, die einen Wert erzeugt.

object Main extends App {
  val squares = for (i <- 1 to 4) yield i * i
  println(squares)
}

Warum das für Backend-Code wichtig ist

Ausdrucksorientierter Code ist meist kürzer, hat weniger bewegliche Teile und lässt sich leichter testen.

  • Weniger veränderliche Variablen bedeuten weniger Fehler.
  • Ergebnisse ergeben sich auf natürliche Weise aus den Eingaben.
  • Er lässt sich gut mit den funktionalen Bibliotheken von Scala kombinieren.

Anweisungsstil vs. Ausdrucksstil

Vergleichen Sie die beiden Denkweisen. Beim Anweisungsstil wird eine Variable verändert; beim Ausdrucksstil wird direkt ein Wert zurückgegeben.

Scala erlaubt beides, bevorzugt jedoch den Ausdrucksstil.

var s = ""            // statement style
if (true) s = "yes" else s = "no"

val e = if (true) "yes" else "no" // expression style

Kurze Überprüfung

Wozu wird ein if/else in Scala ausgewertet?

Zusammenfassung

Scala bevorzugt Ausdrücke, die Werte erzeugen, gegenüber Anweisungen, die nur den Zustand verändern.

  • if, match, Blöcke und for/yield geben alle Werte zurück.
  • Methodenkörper geben ihren letzten Ausdruck zurück; return wird nur selten benötigt.
  • Code mit Seiteneffekten gibt Unit zurück.
  • Dieser Stil reduziert die Verwendung von var und die Anzahl der Fehler.

Häufig gestellte Fragen

Ist die Lektion „Ausdrücke statt Anweisungen“ kostenlos?

Ja — der vollständige Text von „Ausdrücke statt Anweisungen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Scala for Backend Engineering & Functional Programming-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Scala for Backend Engineering & Functional Programming-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Ausdrücke statt Anweisungen“?

Alles gibt einen Wert zurück. Du übst Scala for Backend Engineering & Functional Programming mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Scala for Backend Engineering & Functional Programming zu starten?

Keine Vorkenntnisse erforderlich. Scala for Backend Engineering & Functional Programming auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.

Wie lange dauert die Lektion „Ausdrücke statt Anweisungen“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Scala for Backend Engineering & Functional Programming-Lektion Code schreiben und ausführen?

Ja. Jede Scala for Backend Engineering & Functional Programming-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. val im Vergleich zu var
  2. Grundlegende Typen und Literale
  3. Typinferenz
  4. Ausdrücke statt Anweisungen
← Zurück zu Scala for Backend Engineering & Functional Programming