Sobes.tech
Junior

Explique le concept de l'expression 'when' dans le langage de programmation Kotlin.

sobes.tech IA

Réponse de l'IA

when en Kotlin est un opérateur structurel universel qui remplace le classique switch dans d'autres langages. Il peut être utilisé comme une expression (renvoyant une valeur) ou comme un opérateur.

Fonctionnalités principales:

  • Comparaison de valeurs: Correspondance avec des valeurs spécifiques.

    fun describe(obj: Any): String =
        when (obj) {
            1           -> "Un"
            "Hello"     -> "Salutation"
            is Long     -> "Long"
            !is String  -> "Pas une chaîne"
            else        -> "Inconnu"
        }
    
  • Vérification du type (is/!is): Correspondance avec des types de données.

  • Vérification d'appartenance (in/!in): Vérification de l'inclusion dans une plage ou une collection.

    fun checkRange(x: Int): String =
        when (x) {
            in 1..10   -> "Nombre positif dans la plage"
            !in 10..20 -> "Pas dans la deuxième plage"
            else       -> "Aucun des deux"
        }
    
  • Sans argument: Utilisé comme une substitution plus flexible de la chaîne if-else if-else. Les conditions sont évaluées en séquence.

    fun checkBoolean(x: Boolean, y: Boolean): String =
        when {
            x && y -> "Les deux vrais"
            !x && !y -> "Les deux faux"
            else -> "Mixte"
        }
    
  • Retour de valeur: Si when est utilisé comme une expression, il doit être exhaustif (couvrir tous les cas possibles ou avoir une branche else).

when améliore la lisibilité et la sécurité du code par rapport au traditionnel switch.