Opérateur Elvis
Fait partie de la section Fondamentaux du Journey Kotlin de Coddy. Leçon 15 sur 93.
L’opérateur d’appel sécurisé est très pratique pour éviter les plantages, mais vous avez parfois besoin d’une valeur réelle plutôt que de null. L’opérateur Elvis ?: vous permet de fournir une valeur par défaut lorsqu’une expression est null.
La syntaxe est simple : placez ?: après une expression nullable, suivie de la valeur de secours :
fun main() {
val name: String? = null
val displayName = name ?: "Guest"
println(displayName) // Affiche : Guest
}Si le côté gauche n'est pas nul, cette valeur est utilisée. S'il est nul, le côté droit devient le résultat. Cela fonctionne parfaitement avec les appels sécurisés :
fun main() {
val text: String? = null
val length = text?.length ?: 0
println(length) // Affiche : 0
val greeting: String? = "Hello"
val greetingLength = greeting?.length ?: 0
println(greetingLength) // Affiche : 5
}L’opérateur tire son nom du fait que ?: ressemble aux cheveux d’Elvis lorsqu’on le regarde de côté. Plus important encore, il vous offre une manière claire de convertir des types pouvant être nuls en valeurs non nulles avec des valeurs par défaut pertinentes.
Défi
FacileUn colis possède une étiquette de suivi facultative et une destination facultative. Le code de départ fournit ces deux valeurs pouvant être nulles. Utilisez ?: pour choisir "Pending" lorsque l’étiquette de suivi est manquante et "Unassigned" lorsque la destination est manquante. Affichez l’étiquette choisie, puis la destination choisie, sur des lignes distinctes.
Essayez vous-même
fun main() {
val trackingLabel: String? = null
val destination: String? = "Harbor"
// Choisissez et imprimez les deux valeurs d'affichage.
}
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