Menu
Coddy logo textTech

Opérateur d’appel sécurisé

Fait partie de la section Fondamentaux du Journey Kotlin de Coddy. Leçon 14 sur 93.

Lorsque vous avez une variable nullable, vous ne pouvez pas appeler directement des méthodes ni accéder à ses propriétés : le compilateur ne l’autorise pas, car la valeur pourrait être nulle. L’opérateur d’appel sécurisé ?. résout élégamment ce problème.

Au lieu d’utiliser un point ordinaire ., vous utilisez ?. pour accéder en toute sécurité aux membres d’un type nullable :

fun main() {
    val name: String? = "Alice"
    val length = name?.length  // Retourne 5
    println(length)
    
    val nullName: String? = null
    val nullLength = nullName?.length  // Retourne null (pas de crash !)
    println(nullLength)
}

L’opérateur d’appel sécurisé vérifie si la valeur est nulle avant d’accéder à la propriété ou à la méthode. Si la valeur est nulle, l’expression entière renvoie null au lieu de provoquer un plantage. Si la valeur existe, il fonctionne exactement comme un appel normal.

Vous pouvez également enchaîner plusieurs appels sécurisés :

fun main() {
    val text: String? = "Hello"
    val result = text?.uppercase()?.length
    println(result)  // Affiche : 5
}

Si une partie de la chaîne est nulle, l’expression entière renvoie null en toute sécurité sans générer d’erreur.

challenge icon

Défi

Facile

La variable nullable suivante vous est fournie :

val message: String? = "Kotlin"

Utilisez l’opérateur d’appel sécurisé pour :

  1. Obtenir la longueur de message et l’afficher
  2. Convertir message en majuscules et afficher le résultat

Ensuite, créez une autre variable nullable :

val empty: String? = null

Utilisez l’opérateur d’appel sécurisé pour obtenir la longueur de empty et l’afficher.

Chaque résultat doit être affiché sur une ligne distincte. N’oubliez pas : l’opérateur d’appel sécurisé renvoie null lorsque la valeur est null.

Essayez vous-même

fun main() {
    val message: String? = "Kotlin"
    
    // TODO: Utilisez l'opérateur d'appel sécurisé pour obtenir la longueur de message et l'afficher
    
    // TODO: Utilisez l'opérateur d'appel sécurisé pour convertir message en majuscules et l'afficher
    
    val empty: String? = null
    
    // TODO: Utilisez l'opérateur d'appel sécurisé pour obtenir la longueur de empty et l'afficher
}
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Fondamentaux

Entraînez-vous par vous-même : Playground Kotlin