Kotlin Academy · Leçon

Opérateurs is et as

Vérifications et conversions de types

Leçon 3 sur 413 étapes

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 :

  • is vérifie qu’une valeur est d’un type donné
  • as convertit 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 / !is vérifient les types
  • as effectue une conversion, mais peut lever une exception
  • as? 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 :

  • is et !is pour vérifier les types
  • as pour les conversions susceptibles de lever une exception
  • as? pour les conversions sûres qui renvoient null

Vous allez maintenant rendre when exhaustif afin de couvrir tous les cas.

Gratuit pour commencer

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

  1. when comme expression
  2. Casts intelligents
  3. Opérateurs is et as
  4. when exhaustif
← Retour à Kotlin Academy