Menu
CoddyTech

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 à des propriétés sur celle-ci : le compilateur ne l’autorise pas, car sa valeur peut être nulle. L’opérateur d’appel sécurisé ?. résout élégamment ce problème.

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

fun main() {
    val name: String? = "Alice"
    val length = name?.length  // Renvoie 5
    println(length)
    
    val nullName: String? = null
    val nullLength = nullName?.length  // Renvoie null (sans plantage !)
    println(nullLength)
}

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

Tu peux é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 null, l’expression entière renvoie null sans déclencher 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: Utiliser l’opérateur d’appel sécurisé pour obtenir la longueur de message et l’afficher
    
    // TODO: Utiliser l’opérateur d’appel sécurisé pour convertir message en majuscules et l’afficher
    
    val empty: String? = null
    
    // TODO: Utiliser 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