0Pricing
Kotlin Academy · Leçon

apply et also

Configurer et gérer les effets de bord

apply et also est une leçon Kotlin Academy gratuite sur CoddyKit. Ceci est la leçon 2 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.

Configurer des objets

apply et also sont des fonctions de portée qui renvoient l’objet lui-même plutôt que le résultat de la lambda. Elles sont donc parfaites pour la configuration et l’enchaînement.

La fonction apply

apply exécute un bloc avec l’objet comme this et renvoie l’objet. C’est l’outil classique pour initialiser un objet après sa création.

fun main() {
    val builder = StringBuilder().apply {
        append("Hello")
        append(", ")
        append("World")
    }
    println(builder.toString())
}

Pourquoi apply renvoie l’objet

Comme apply renvoie le récepteur, vous pouvez affecter directement l’objet configuré à une variable.

data class Person(var name: String = "", var age: Int = 0)

fun main() {
    val p = Person().apply {
        name = "Alice"
        age = 30
    }
    println(p)
}

apply utilise this

Dans apply, l’objet est le récepteur ; vous accédez donc directement à ses propriétés, sans préfixe.

data class Config(var host: String = "", var port: Int = 0)

fun main() {
    val config = Config().apply {
        host = "localhost"
        port = 8080
    }
    println("${config.host}:${config.port}")
}

La fonction also

also exécute un bloc avec l’objet sous le nom it et renvoie l’objet. Elle sert à effectuer des effets secondaires, comme la journalisation ou la validation, qui ne modifient pas l’objet.

fun main() {
    val numbers = mutableListOf(1, 2, 3)
    numbers
        .also { println("Before: $it") }
        .add(4)
    println("After: $numbers")
}

also utilise it

Comme also expose l’objet sous le nom it, cette fonction est pratique lorsque vous souhaitez continuer à faire référence au this externe ou simplement conserver une référence explicite.

fun main() {
    val value = 42
        .also { println("Logging value: $it") }
    println(value)
}

apply et also

La différence est comparable à celle entre run et let :

  • apply utilise this et convient particulièrement à la configuration des propriétés.
  • also utilise it et convient particulièrement aux effets secondaires appliqués à l’objet.

Toutes deux renvoient l’objet d’origine.

data class Box(var size: Int = 0)

fun main() {
    val box = Box()
        .apply { size = 5 }
        .also { println("Created box with size ${it.size}") }
    println(box)
}

Enchaîner apply et also

Comme toutes deux renvoient l’objet, vous pouvez les enchaîner pour commencer par le configurer, puis effectuer des effets secondaires dans une chaîne fluide.

data class Account(var owner: String = "", var balance: Int = 0)

fun main() {
    val account = Account()
        .apply { owner = "Sam" }
        .apply { balance = 100 }
        .also { println("New account: $it") }
    println(account.balance)
}

also pour la validation

Utilisez also pour insérer une vérification au milieu d’une chaîne sans interrompre son déroulement.

fun main() {
    val result = listOf(1, 2, 3, 4)
        .filter { it % 2 == 0 }
        .also { check(it.isNotEmpty()) { "No even numbers" } }
    println(result)
}

Renvoyer l’objet permet de créer des chaînes

Le point commun entre apply et also est qu’elles n’interrompent jamais une chaîne, car elles renvoient toujours le même objet que celui avec lequel vous avez commencé.

fun main() {
    val text = StringBuilder()
        .apply { append("a") }
        .also { it.append("b") }
        .apply { append("c") }
    println(text)
}

Choisir apply ou also

Choisissez apply lorsque vous initialisez ou modifiez un objet en utilisant ses propres membres. Choisissez also lorsque vous effectuez une action qui utilise l’objet sans le configurer, comme la journalisation, le débogage ou la validation.

Vérification rapide

Quelle valeur apply et also renvoient-elles ?

Récapitulatif

Vous avez appris les deux fonctions de portée qui renvoient un objet :

  • apply utilise this pour configurer un objet.
  • also utilise it pour appliquer des effets secondaires à un objet.

Toutes deux renvoient l’objet, ce qui permet de créer des chaînes claires. Vous allez ensuite regrouper des opérations avec with.

Questions Fréquemment Posées

La leçon « apply et also » est-elle gratuite ?

Oui — le texte complet de « apply et also » 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 « apply et also » ?

Configurer et gérer les effets de bord 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 2 sur 4.

Combien de temps prend la leçon « apply et also » ?

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. let et run
  2. apply et also
  3. with
  4. Choisir le bon outil
← Retour à Kotlin Academy