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.
Défi
FacileLa variable nullable suivante vous est fournie :
val message: String? = "Kotlin"Utilisez l’opérateur d’appel sécurisé pour :
- Obtenir la longueur de
messageet l’afficher - Convertir
messageen majuscules et afficher le résultat
Ensuite, créez une autre variable nullable :
val empty: String? = nullUtilisez 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
nulllorsque la valeur estnull.
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
}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
4Opérateurs, partie 1
Opérateurs arithmétiquesOpérateur moduloAffectation augmentéeOpérateurs de comparaisonRécapitulatif - Mathématiques simples7E/S de base
Fonction PrintlnModèles de chaînesEntrée ReadLineConversion de typeRécapitulatif - Années avant la retraiteRécapitulatif - Vrai ou faux10Fonctions
Déclarer une fonctionParamètres et argumentsValeurs de retourArguments nommésValeurs par défautFonctions à expression uniqueRécapitulatif - Fonction SigmaRécapitulatif - Fonction de validation2Variables
Val ou VarInférence de typeNombresChaîne de caractèresBooléenConventions de nommageRécapitulatif - Initialiser des variables5Opérateurs, partie 2
Opérateurs logiques, partie 1Opérateurs logiques, partie 2Opérateurs logiques, partie 3Ternaire avec une expression ifRécapitulatif - Logique simple8Calculateur de partage d’addition
Message de bienvenueSaisie des données11FizzBuzz avec une variante
Aperçu du jeuLa fonction FizzBuzz3Nullabilité
Qu’est-ce que la sécurité vis-à-vis de nullTypes nullableOpérateur d’appel sécuriséOpérateur ElvisBases des défis de fonctionsAssertion de non-nullitéRécapitulatif - Accès sécurisé6Prise de décision
Instruction IfIf - ElseIf comme expressionExpression WhenWhen avec des plagesRécapitulatif - Calculatrice simple9Boucles
Boucle ForBoucle WhileBoucle Do-WhileBreakContinuePlages dans les bouclesBoucle imbriquéeRécapitulatif - FactorielleRécapitulatif - Entrée dynamiqueEntraînez-vous par vous-même : Playground Kotlin