Expressies boven statements
Alles retourneert een waarde.
Expressies boven statements is een gratis Scala voor backend-engineering en functioneel programmeren-les op CoddyKit. Dit is les 4 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Scala voor backend-engineering en functioneel programmeren. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Scala voor backend-engineering en functioneel programmeren bevat in totaal 4 lessen.
Alles is een expressie
In veel talen zijn if en blokken instructies die iets doen maar geen waarde opleveren. In Scala zijn het expressies die naar een waarde evalueren.
Deze verschuiving vormt de kern van functioneel programmeren in Scala.
val max = if (3 > 2) 3 else 2if als expressie
Een Scala-if/else retourneert de waarde van de tak die wordt uitgevoerd. Je kunt dat resultaat rechtstreeks aan een val toewijzen.
Je hebt geen veranderlijke variabele nodig die je binnen de takken instelt.
object Main extends App {
val temp = 18
val label = if (temp > 20) "warm" else "cool"
println(label)
}Blokken retourneren hun laatste regel
Een blok { ... } is zelf een expressie. De waarde ervan is de waarde van de laatste expressie erin.
Hier evalueert het blok naar 30, dat de waarde van result wordt.
object Main extends App {
val result = {
val a = 10
val b = 20
a + b
}
println(result)
}Geen expliciete return nodig
Omdat de body van een methode een expressie is, is de waarde ervan gewoon de laatst geëvalueerde expressie. Het sleutelwoord return wordt zelden gebruikt.
Beide methoden hieronder gedragen zich hetzelfde, maar de idiomatische variant laat return weg.
def double(x: Int) = x * 2
// instead of: def double(x: Int) = { return x * 2 }match is ook een expressie
Patroonvergelijking met match levert ook een waarde op, waardoor het ideaal is om invoer naar resultaten om te zetten.
Elke case-tak levert de waarde voor die tak.
object Main extends App {
val day = 3
val name = day match {
case 1 => "Mon"
case 3 => "Wed"
case _ => "Other"
}
println(name)
}Expressies kunnen worden gecombineerd
Omdat expressies waarden retourneren, kun je ze vrij nesten en combineren.
Een if kan het argument van een functie zijn of deel uitmaken van een grotere berekening, zonder tijdelijke variabelen.
object Main extends App {
val n = 7
println("sign: " + (if (n >= 0) "+" else "-"))
}Instructies bestaan nog steeds
Niet alles levert een bruikbare waarde op. Bewerkingen die alleen worden uitgevoerd vanwege hun neveneffecten, zoals println of een toewijzing, evalueren naar Unit.
Dit zijn de instructieachtige expressies van Scala.
val x: Unit = println("hello") // value is ()Vermijd var met expressies
Met de expressiestijl kun je veranderlijke patronen met var vervangen. In plaats van een var te declareren en die in takken toe te wijzen, wijs je de volledige if toe aan een val.
object Main extends App {
val score = 85
val grade = if (score >= 90) "A" else if (score >= 80) "B" else "C"
println(grade)
}for levert waarden op
Een for met yield is een expressie die een nieuwe verzameling opbouwt, in plaats van alleen te lussen vanwege neveneffecten.
Hierdoor wordt iteratie een transformatie die een waarde oplevert.
object Main extends App {
val squares = for (i <- 1 to 4) yield i * i
println(squares)
}Waarom dit belangrijk is voor backendcode
Expressiegerichte code is meestal korter, bevat minder bewegende onderdelen en is eenvoudiger te testen.
- Minder veranderlijke variabelen betekent minder fouten.
- Resultaten vloeien natuurlijk voort uit invoer.
- De stijl kan goed worden gecombineerd met de functionele bibliotheken van Scala.
Instructiestijl versus expressiestijl
Vergelijk de twee manieren van denken. Bij de instructiestijl wordt een variabele gewijzigd; bij de expressiestijl wordt rechtstreeks een waarde geretourneerd.
Met Scala kun je beide gebruiken, maar de voorkeur gaat uit naar de expressiestijl.
var s = "" // statement style
if (true) s = "yes" else s = "no"
val e = if (true) "yes" else "no" // expression styleKorte controle
Waarnaar evalueert een if/else in Scala?
Samenvatting
Scala geeft de voorkeur aan expressies die waarden opleveren boven instructies die alleen de status wijzigen.
if,match, blokken enfor/yieldretourneren allemaal waarden.- Methoden retourneren hun laatste expressie;
returnis zelden nodig. - Code met neveneffecten retourneert
Unit. - Deze stijl vermindert het gebruik van
varen het aantal fouten.
Leer Scala met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 39
- Lessen
- 143
Veelgestelde vragen
Is de les “Expressies boven statements” gratis?
Ja — de volledige tekst van “Expressies boven statements” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Scala voor backend-engineering en functioneel programmeren wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Scala voor backend-engineering en functioneel programmeren bevat in totaal 4 lessen.
Wat leer ik in “Expressies boven statements”?
Alles retourneert een waarde. Je oefent met Scala voor backend-engineering en functioneel programmeren door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Scala voor backend-engineering en functioneel programmeren te beginnen?
Ervaring vooraf is niet nodig. Scala voor backend-engineering en functioneel programmeren op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 4 van 4.
Hoe lang duurt de les “Expressies boven statements”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Scala voor backend-engineering en functioneel programmeren?
Ja. Elke les over Scala voor backend-engineering en functioneel programmeren bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- val versus var
- Basistypen en literals
- Type-inferentie
- Expressies boven statements