Expressions plutôt qu’instructions
Tout renvoie une valeur.
Expressions plutôt qu’instructions est une leçon Scala for Backend Engineering & Functional Programming gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Scala for Backend Engineering & Functional Programming, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Scala for Backend Engineering & Functional Programming comprend 4 leçons au total.
Tout est une expression
Dans de nombreux langages, if et les blocs sont des instructions qui effectuent une action sans produire de valeur. En Scala, ce sont des expressions qui s'évaluent en une valeur.
Ce changement est au cœur de la programmation fonctionnelle en Scala.
val max = if (3 > 2) 3 else 2if comme expression
Un if/else Scala renvoie la valeur de la branche exécutée. Vous pouvez affecter directement ce résultat à un val.
Il n'est pas nécessaire d'utiliser une variable mutable que vous définissez dans les branches.
object Main extends App {
val temp = 18
val label = if (temp > 20) "warm" else "cool"
println(label)
}Les blocs renvoient leur dernière ligne
Un bloc { ... } est lui-même une expression. Sa valeur est celle de la dernière expression qu'il contient.
Ici, le bloc s'évalue en 30, qui devient la valeur de result.
object Main extends App {
val result = {
val a = 10
val b = 20
a + b
}
println(result)
}Pas besoin de return explicite
Comme le corps d'une méthode est une expression, sa valeur est simplement celle de la dernière expression évaluée. Le mot-clé return est rarement utilisé.
Les deux méthodes ci-dessous se comportent de la même manière, mais la version idiomatique omet return.
def double(x: Int) = x * 2
// instead of: def double(x: Int) = { return x * 2 }match est aussi une expression
La correspondance de motifs avec match produit également une valeur, ce qui la rend idéale pour associer des entrées à des résultats.
Chaque branche de cas produit la valeur de sa branche.
object Main extends App {
val day = 3
val name = day match {
case 1 => "Mon"
case 3 => "Wed"
case _ => "Other"
}
println(name)
}Les expressions se composent
Comme les expressions renvoient des valeurs, vous pouvez librement les imbriquer et les combiner.
Un if peut être l'argument d'une fonction ou faire partie d'un calcul plus vaste, sans variables temporaires.
object Main extends App {
val n = 7
println("sign: " + (if (n >= 0) "+" else "-"))
}Les instructions existent toujours
Tout ne produit pas une valeur utile. Les opérations effectuées uniquement pour leurs effets de bord, comme println ou une affectation, s'évaluent en Unit.
Ce sont les expressions de Scala qui se comportent comme des instructions.
val x: Unit = println("hello") // value is ()Éviter var avec les expressions
Le style fondé sur les expressions permet de remplacer les constructions utilisant un var mutable. Au lieu de déclarer un var et de lui affecter une valeur dans les branches, affectez l'ensemble du if à un val.
object Main extends App {
val score = 85
val grade = if (score >= 90) "A" else if (score >= 80) "B" else "C"
println(grade)
}for produit des valeurs
Un for avec yield est une expression qui construit une nouvelle collection, au lieu de simplement parcourir une collection pour ses effets de bord.
L'itération devient ainsi une transformation qui produit une valeur.
object Main extends App {
val squares = for (i <- 1 to 4) yield i * i
println(squares)
}Pourquoi c'est important pour le code serveur
Le code orienté expressions tend à être plus court, comporte moins d'éléments mobiles et est plus facile à tester.
- Moins de variables mutables signifie moins de bogues.
- Les résultats découlent naturellement des entrées.
- Il se compose bien avec les bibliothèques fonctionnelles de Scala.
Style basé sur les instructions ou sur les expressions
Comparez les deux approches. Le style fondé sur les instructions modifie une variable ; le style fondé sur les expressions renvoie directement une valeur.
Scala permet les deux, mais privilégie le style fondé sur les expressions.
var s = "" // statement style
if (true) s = "yes" else s = "no"
val e = if (true) "yes" else "no" // expression styleVérification rapide
À quoi s'évalue un if/else en Scala ?
Récapitulatif
Scala privilégie les expressions qui produisent des valeurs plutôt que les instructions qui ne font que modifier l'état.
if,match, les blocs etfor/yieldrenvoient tous des valeurs.- Les corps de méthodes renvoient leur dernière expression ;
returnest rarement nécessaire. - Le code produisant des effets de bord renvoie
Unit. - Ce style réduit l'utilisation de
varet le nombre de bogues.
Apprends Scala avec un tuteur IA — gratuit
Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.
- Cours
- 39
- Leçons
- 143
Questions Fréquemment Posées
La leçon « Expressions plutôt qu’instructions » est-elle gratuite ?
Oui — le texte complet de « Expressions plutôt qu’instructions » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Scala for Backend Engineering & Functional Programming, passe à CoddyKit PRO. Le cours Scala for Backend Engineering & Functional Programming comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Expressions plutôt qu’instructions » ?
Tout renvoie une valeur. Tu pratiques Scala for Backend Engineering & Functional Programming avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Scala for Backend Engineering & Functional Programming ?
Aucune expérience préalable n'est requise. Scala for Backend Engineering & Functional Programming sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.
Combien de temps prend la leçon « Expressions plutôt qu’instructions » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Scala for Backend Engineering & Functional Programming ?
Oui. Chaque leçon Scala for Backend Engineering & Functional Programming inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- val et var
- Types et littéraux de base
- Inférence de type
- Expressions plutôt qu’instructions