apply dan also
Konfigurasikan dan terapkan efek samping
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:
applymenggunakanthisdan paling cocok untuk mengonfigurasi properti.alsomenggunakanitdan 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:
applymenggunakanthisuntuk mengonfigurasi objek.alsomenggunakanituntuk efek samping pada objek.
Keduanya mengembalikan objek, sehingga memungkinkan rangkaian yang rapi. Selanjutnya, Anda akan mengelompokkan operasi dengan with.
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
- let dan run
- apply dan also
- with
- Memilih yang Tepat