Types nullable
Fait partie de la section Fondamentaux du Journey Kotlin de Coddy. Leçon 13 sur 93.
Parfois, vous avez réellement besoin d’une variable pouvant contenir « rien ». Par exemple, le deuxième prénom d’un utilisateur peut ne pas exister, ou une recherche peut ne renvoyer aucun résultat. Kotlin permet cela grâce aux types nullables.
Pour rendre un type nullable, ajoutez un ? après le nom du type :
fun main() {
var middleName: String? = "Marie"
middleName = null // Ceci est maintenant autorisé !
val age: Int? = null // Peut contenir un Int ou null
}Le ? indique à Kotlin : « Cette variable peut être nulle, alors sois prudent avec elle. » Sans le ?, le type n’est pas nullable et ne peut jamais contenir null.
Important : Les types pouvant être nuls et les types non nuls sont différents. Vous ne pouvez pas affecter directement une valeur pouvant être nulle à une variable non nulle :
fun main() {
val nullableName: String? = "Alice"
val regularName: String = nullableName // Erreur !
}Cette distinction est intentionnelle. Elle vous oblige à gérer la possibilité de null avant d’utiliser la valeur. Dans les prochaines leçons, vous apprendrez les méthodes sûres que Kotlin fournit pour travailler avec des valeurs nullables.
Défi
FacileDéclare les variables nullable suivantes :
- Une
Stringnullable nomméenicknameavec la valeur"Shadow" - Un
Intnullable nomméageavec la valeurnull - Un
Doublenullable nommébalanceavec la valeur99.5
Affiche ensuite les trois valeurs sur des lignes distinctes à l’aide de println().
N’oublie pas d’utiliser
?après le nom du type pour le rendre nullable. L’affichage d’une valeurnullaffichera le motnull.
Essayez vous-même
fun main() {
// TODO: Déclarez les variables nullables suivantes :
// 1. Un String nullable nommé 'nickname' avec la valeur "Shadow"
// 2. Un Int nullable nommé 'age' avec la valeur null
// 3. Un Double nullable nommé 'balance' avec la valeur 99.5
// Ensuite, affichez les trois valeurs sur des lignes séparées
}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