Kotlin Academy · Pelajaran

with

Kelompokkan operasi

Pelajaran 3 dari 413 langkah

with adalah pelajaran Kotlin Academy gratis di CoddyKit. Ini adalah pelajaran 3 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.

Fungsi with

with adalah fungsi lingkup yang menerima objek sebagai argumen (bukan sebagai penerima panggilan) dan menjalankan blok dengan objek tersebut sebagai this. Fungsi ini mengembalikan hasil lambda.

Penggunaan Dasar with

Anda meneruskan objek ke with dan mengakses anggotanya secara langsung di dalam blok.

fun main() {
    val name = "Kotlin"
    val description = with(name) {
        "$this has $length characters"
    }
    println(description)
}

Mengelompokkan Beberapa Operasi

with sangat berguna saat Anda perlu memanggil beberapa metode atau membaca beberapa properti pada objek yang sama. Fungsi ini menghindari pengulangan nama objek.

fun main() {
    val sb = StringBuilder()
    with(sb) {
        append("Line 1\n")
        append("Line 2\n")
        append("Line 3")
    }
    println(sb)
}

with Menggunakan this

Seperti run dan apply, with menyediakan objek sebagai this, sehingga akses anggota tidak memerlukan awalan.

data class Rectangle(val width: Int, val height: Int)

fun main() {
    val rect = Rectangle(4, 5)
    val area = with(rect) {
        width * height
    }
    println("Area: $area")
}

with Mengembalikan Hasil Lambda

Nilai ekspresi terakhir dalam blok menjadi hasil dari with, sama seperti pada run.

fun main() {
    val list = listOf(1, 2, 3, 4, 5)
    val summary = with(list) {
        "Size=$size, First=${first()}, Last=${last()}"
    }
    println(summary)
}

with dibandingkan dengan run

with(obj) { ... } dan obj.run { ... } melakukan hampir hal yang sama. Perbedaannya terletak pada sintaks:

  • run adalah ekstensi yang dipanggil pada objek, sehingga berfungsi dengan baik bersama pemanggilan aman.
  • with menerima objek sebagai argumen dan terdengar alami seperti “dengan objek ini, lakukan...”.
fun main() {
    val s = "data"
    val a = with(s) { uppercase() }
    val b = s.run { uppercase() }
    println("$a $b")
}

with Bukan untuk Nilai yang Dapat Bernilai Null

Karena objek diteruskan sebagai argumen, with tidak dapat dipadukan dengan baik dengan operator pemanggilan aman. Untuk penerima yang dapat bernilai null, pilih obj?.run { } atau obj?.let { }.

fun main() {
    val name: String? = "Eve"
    name?.run { println("Hello $this") }
    println("with is awkward for nullables")
}

Membaca dan Menghitung Secara Bersamaan

Pola yang umum adalah membaca beberapa properti dan menghitung satu hasil, semuanya di dalam satu blok yang mudah dibaca.

data class Order(val items: Int, val pricePerItem: Int)

fun main() {
    val order = Order(3, 20)
    val total = with(order) {
        items * pricePerItem
    }
    println("Total: $total")
}

Membangun String dengan with

Jika dipadukan dengan buildString atau StringBuilder, with menghasilkan kode pembangunan yang rapi tanpa awalan.

fun main() {
    val report = StringBuilder()
    with(report) {
        appendLine("Report")
        appendLine("======")
        appendLine("All good")
    }
    print(report)
}

with pada Koleksi

Anda dapat memanggil banyak fungsi koleksi pada daftar yang sama tanpa mengulangi namanya.

fun main() {
    val numbers = listOf(10, 20, 30)
    with(numbers) {
        println("Sum: ${sum()}")
        println("Max: ${max()}")
        println("Average: ${average()}")
    }
}

Kapan Menggunakan with

Pilih with saat Anda memiliki objek yang tidak null dan ingin melakukan sekelompok operasi pada objek tersebut, dengan opsi untuk mengembalikan hasil. Fungsi ini menyampaikan makna “Saya sedang bekerja dengan objek ini untuk sementara waktu”.

Pemeriksaan Singkat

Bagaimana with menerima objeknya?

Ringkasan

with mengelompokkan operasi pada satu objek yang tidak null dan diteruskan sebagai argumen, menyediakan objek tersebut sebagai this, serta mengembalikan hasil lambda. Fungsinya seperti run, tetapi menggunakan sintaks argumen. Selanjutnya, Anda akan mempelajari cara memilih fungsi lingkup yang tepat untuk setiap situasi.

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 “with” gratis?

Ya — teks lengkap “with” 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 “with”?

Kelompokkan operasi 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 3 dari 4.

Berapa lama pelajaran “with” 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