Kotlin Academy · Pelajaran

apply dan also

Konfigurasikan dan terapkan efek samping

Pelajaran 2 dari 413 langkah

apply dan also adalah pelajaran Kotlin Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Kotlin Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Kotlin Academy mencakup 4 pelajaran total.

Mengonfigurasi Objek

apply dan also adalah fungsi lingkup yang mengembalikan objek itu sendiri, bukan hasil lambda. Hal ini membuat keduanya sangat cocok untuk konfigurasi dan perangkaian.

Fungsi apply

apply menjalankan blok dengan objek sebagai this dan mengembalikan objek. Fungsi ini merupakan alat klasik untuk menginisialisasi objek setelah dibuat.

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

Mengapa apply Mengembalikan Objek

Karena apply mengembalikan penerima, Anda dapat langsung menetapkan objek yang telah dikonfigurasi ke sebuah variabel.

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

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

apply Menggunakan this

Di dalam apply, objek tersebut adalah penerima, sehingga Anda dapat mengakses propertinya secara langsung tanpa awalan apa pun.

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}")
}

Fungsi also

also menjalankan blok dengan objek sebagai it dan mengembalikan objek. Fungsi ini digunakan untuk efek samping seperti pencatatan log atau validasi yang tidak mengubah objek.

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

also Menggunakan it

Karena also menyediakan objek sebagai it, fungsi ini praktis saat Anda masih ingin merujuk ke this bagian luar atau sekadar mempertahankan referensi secara eksplisit.

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

apply dibandingkan dengan also

Perbedaannya serupa dengan perbedaan antara run dan let:

  • apply menggunakan this dan paling cocok untuk mengonfigurasi properti.
  • also menggunakan it dan paling cocok untuk efek samping pada objek.

Keduanya mengembalikan objek asli.

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)
}

Merangkai apply dan also

Karena keduanya mengembalikan objek, Anda dapat merangkainya untuk mengonfigurasi objek terlebih dahulu, lalu melakukan efek samping dalam alur berantai yang lancar.

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 untuk Validasi

Gunakan also untuk menyisipkan pemeriksaan di tengah rangkaian tanpa mengganggu alurnya.

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

Pengembalian Objek Memungkinkan Alur

Sifat yang sama dari apply dan also adalah keduanya tidak pernah memutus rangkaian, karena selalu mengembalikan objek yang sama dengan objek awal Anda.

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

Memilih apply atau also

Pilih apply saat menginisialisasi atau mengubah objek menggunakan anggotanya sendiri. Pilih also saat melakukan tindakan yang menggunakan objek tetapi tidak mengonfigurasinya, seperti pencatatan log, penelusuran kesalahan, atau validasi.

Pemeriksaan Singkat

Nilai apa yang dikembalikan oleh apply dan also?

Ringkasan

Anda telah mempelajari dua fungsi lingkup yang mengembalikan objek:

  • apply menggunakan this untuk mengonfigurasi objek.
  • also menggunakan it untuk efek samping pada objek.

Keduanya mengembalikan objek, sehingga memungkinkan rangkaian yang rapi. Selanjutnya, Anda akan mengelompokkan operasi dengan with.

Gratis untuk memulai

Belajar Kotlin dengan tutor AI — gratis

Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.

Kursus
51
Pelajaran
203

Pertanyaan yang Sering Diajukan

Apakah pelajaran “apply dan also” gratis?

Ya — teks lengkap “apply dan also” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Kotlin Academy, upgrade ke CoddyKit PRO. Kursus Kotlin Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “apply dan also”?

Konfigurasikan dan terapkan efek samping Kamu berlatih Kotlin Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Kotlin Academy?

Tidak diperlukan pengalaman sebelumnya. Kotlin Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.

Berapa lama pelajaran “apply dan also” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Kotlin Academy ini?

Ya. Setiap pelajaran Kotlin Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. let dan run
  2. apply dan also
  3. with
  4. Memilih yang Tepat
← Kembali ke Kotlin Academy