Fonctions d’extension : syntaxe et règles de résolution
Écrivez des fonctions d’extension et comprenez la résolution statique.
Fonctions d’extension : syntaxe et règles de résolution est une leçon Kotlin Academy gratuite sur CoddyKit. Ceci est la leçon 1 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.
Que sont les fonctions d'extension ?
Syntaxe de base d'une fonction d'extension
fun String.shout(): String = uppercase() + "!"
println("hello".shout()) // HELLO!
fun Int.isEven() = this % 2 == 0
println(4.isEven()) // truethis dans les extensions
fun List<Int>.secondOrNull(): Int? {
return if (size >= 2) this[1] else null
}
println(listOf(10, 20, 30).secondOrNull()) // 20
println(listOf(5).secondOrNull()) // nullRésolution statique : les extensions ne redéfinissent pas les fonctions
open class Base
class Child : Base()
fun Base.greet() = "Hello from Base"
fun Child.greet() = "Hello from Child"
val obj: Base = Child()
println(obj.greet()) // "Hello from Base" (static dispatch!)Extensions et fonctions membres
class Greeter {
fun hello() = "member hello"
}
fun Greeter.hello() = "extension hello" // shadowed!
println(Greeter().hello()) // "member hello"Extensions avec récepteur nullable
fun String?.orEmpty() = this ?: ""
fun Any?.toStringSafe() = this?.toString() ?: "null"
println(null.orEmpty()) // ""
println(42.toStringSafe()) // "42"Visibilité et portée
// Top-level extension:
fun List<String>.joinUppercase() = joinToString { it.uppercase() }
// Private to file:
private fun String.clean() = trim().lowercase()Extensions d'un objet compagnon
class User(val name: String) {
companion object
}
fun User.Companion.guest() = User("Guest")
val guest = User.guest()Extensions des types de la bibliothèque standard
fun Double.roundTo(decimals: Int): Double {
val factor = Math.pow(10.0, decimals.toDouble())
return Math.round(this * factor) / factor
}
println(3.14159.roundTo(2)) // 3.14Organiser les extensions
// StringExtensions.kt
fun String.titleCase() = split(" ")
.joinToString(" ") {
it.replaceFirstChar { c -> c.uppercase() }
}
println("hello world".titleCase()) // Hello WorldLes extensions n'accèdent pas aux membres privés
class Secret {
private val key = "hidden"
val name = "public"
}
fun Secret.reveal() {
println(name) // OK
// println(key) // Error: key is private
}Vérification rapide
Récapitulatif
Questions Fréquemment Posées
La leçon « Fonctions d’extension : syntaxe et règles de résolution » est-elle gratuite ?
Oui — le texte complet de « Fonctions d’extension : syntaxe et règles de résolution » 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 « Fonctions d’extension : syntaxe et règles de résolution » ?
Écrivez des fonctions d’extension et comprenez la résolution statique. 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 1 sur 4.
Combien de temps prend la leçon « Fonctions d’extension : syntaxe et règles de résolution » ?
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
- Fonctions d’extension : syntaxe et règles de résolution
- Propriétés d’extension et extensions calculées
- Extensions limitées et extensions de companion object
- Extensions pratiques : utilitaires pour Context, View et String