Opérateurs is et as
Vérifications et conversions de types
Opérateurs is et as est une leçon Kotlin Academy gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Kotlin Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Kotlin Academy comprend 4 leçons au total.
Vérifier et convertir des types
Kotlin propose deux opérateurs pour travailler avec les types lors de l’exécution :
isvérifie qu’une valeur est d’un type donnéasconvertit une valeur vers un type donné
Les deux possèdent des variantes sûres que vous allez découvrir ici.
L’opérateur is
is renvoie une valeur booléenne indiquant si une valeur correspond à un type.
C’est le fondement des conversions intelligentes.
fun main() {
val x: Any = "hello"
println(x is String)
println(x is Int)
}Vérification négative avec !is
Utilisez !is pour vérifier qu’une valeur n’est pas d’un type donné (NOT).
Cette écriture est naturelle dans les clauses de garde.
fun main() {
val x: Any = 42
if (x !is String) {
println("not a string")
}
}L’opérateur as
as effectue une conversion explicite. Si la valeur est bien de ce type, vous la récupérez avec le type approprié.
Utilisez-le lorsque le compilateur ne peut pas déduire lui-même le type.
fun main() {
val x: Any = "hello"
val s = x as String
println(s.length)
}Quand as échoue
Si la valeur n’est pas du type cible, as lève une ClassCastException.
Il s’agit de la variante dangereuse : utilisez-la uniquement lorsque vous êtes certain du type.
fun main() {
val x: Any = 42
try {
val s = x as String
println(s)
} catch (e: ClassCastException) {
println("Cannot cast Int to String")
}
}La conversion sûre as?
as? est la conversion sûre. Elle renvoie la valeur convertie vers le type, ou null si la conversion est impossible.
Aucune exception n’est levée.
fun main() {
val x: Any = 42
val s = x as? String
println(s)
}Conversion sûre avec Elvis
Associez as? à Elvis pour fournir une solution de repli lorsque la conversion échoue.
C’est une pratique claire qui évite les plantages.
fun main() {
val x: Any = 42
val s = (x as? String) ?: "default"
println(s)
}is déclenche les conversions intelligentes
Après une vérification avec is, vous n’avez généralement pas besoin de as, car les conversions intelligentes s’activent automatiquement.
N’utilisez une conversion explicite avec as que lorsque la conversion intelligente ne peut pas s’appliquer.
fun main() {
val x: Any = "smart"
if (x is String) {
println(x.uppercase()) // smart cast, no as needed
}
}Conversions dans les collections
Les conversions sûres sont utiles pour filtrer des collections hétérogènes.
filterIsInstance utilise is en interne pour ne conserver que les éléments correspondants.
fun main() {
val items: List<Any> = listOf(1, "two", 3, "four")
val strings = items.filterIsInstance<String>()
println(strings)
}Choisir le bon opérateur
Voici un guide simple :
- Vous avez besoin d’une valeur booléenne ? Utilisez
is - Vous êtes certain du type ? Utilisez
as - Vous avez un doute ? Utilisez
as?avec une solution de repli
fun describe(x: Any): String {
val text = x as? String ?: return "not text"
return "text of length " + text.length
}
fun main() {
println(describe("hello"))
println(describe(99))
}Tout mettre en pratique
Les opérateurs de type vous offrent un contrôle complet :
is/!isvérifient les typesaseffectue une conversion, mais peut lever une exceptionas?effectue une conversion sûre et renvoie null en cas d’échec
fun main() {
val values: List<Any> = listOf(1, "hi", 2.5)
for (v in values) {
when {
v is Int -> println("int " + v)
v is String -> println("string " + v)
else -> println("other")
}
}
}Vérification rapide
Vérifiez votre compréhension de is et as.
Récapitulatif
Vous avez appris les opérateurs de type :
iset!ispour vérifier les typesaspour les conversions susceptibles de lever une exceptionas?pour les conversions sûres qui renvoient null
Vous allez maintenant rendre when exhaustif afin de couvrir tous les cas.
Apprends Kotlin avec un tuteur IA — gratuit
Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.
- Cours
- 51
- Leçons
- 203
Questions Fréquemment Posées
La leçon « Opérateurs is et as » est-elle gratuite ?
Oui — le texte complet de « Opérateurs is et as » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Kotlin Academy, passe à CoddyKit PRO. Le cours Kotlin Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Opérateurs is et as » ?
Vérifications et conversions de types Tu pratiques Kotlin Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Kotlin Academy ?
Aucune expérience préalable n'est requise. Kotlin Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.
Combien de temps prend la leçon « Opérateurs is et as » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Kotlin Academy ?
Oui. Chaque leçon Kotlin Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- when comme expression
- Casts intelligents
- Opérateurs is et as
- when exhaustif