Kotlin Academy · Pelajaran

Operator is dan as

Pemeriksaan dan pengubahan tipe

Pelajaran 3 dari 413 langkah

Operator is dan as 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.

Memeriksa dan Memerankan Tipe

Kotlin menyediakan dua operator untuk bekerja dengan tipe saat waktu berjalan:

  • is memeriksa apakah suatu nilai memiliki tipe tertentu
  • as memerankan suatu nilai ke tipe tertentu

Keduanya memiliki varian aman yang akan Anda pelajari di sini.

Operator is

is mengembalikan boolean yang memberi tahu Anda apakah suatu nilai cocok dengan tipe tertentu.

Operator ini menjadi dasar bagi pemeran cerdas.

fun main() {
    val x: Any = "hello"
    println(x is String)
    println(x is Int)
}

Pemeriksaan Negasi dengan !is

Gunakan !is untuk menguji bahwa suatu nilai BUKAN tipe tertentu.

Penulisan ini terbaca secara alami dalam klausa penjaga.

fun main() {
    val x: Any = 42
    if (x !is String) {
        println("not a string")
    }
}

Operator as

as melakukan pemeranan eksplisit. Jika nilai tersebut memang memiliki tipe itu, Anda mendapatkannya kembali dengan tipe yang benar.

Gunakan operator ini saat kompiler tidak dapat menyimpulkan tipenya sendiri.

fun main() {
    val x: Any = "hello"
    val s = x as String
    println(s.length)
}

Saat as Gagal

Jika nilai tersebut bukan tipe target, as akan melempar ClassCastException.

Ini adalah varian yang tidak aman, jadi gunakan hanya jika Anda benar-benar yakin.

fun main() {
    val x: Any = 42
    try {
        val s = x as String
        println(s)
    } catch (e: ClassCastException) {
        println("Cannot cast Int to String")
    }
}

Pemeranan Aman as?

as? adalah pemeranan aman. Operator ini mengembalikan nilai yang diperankan ke tipe tersebut, atau null jika pemeranan tidak mungkin dilakukan.

Tidak ada pengecualian yang dilempar.

fun main() {
    val x: Any = 42
    val s = x as? String
    println(s)
}

Pemeranan Aman dengan Elvis

Padukan as? dengan Elvis untuk menyediakan cadangan saat pemeranan gagal.

Ini merupakan pola yang rapi dan bebas kerusakan.

fun main() {
    val x: Any = 42
    val s = (x as? String) ?: "default"
    println(s)
}

is Menggerakkan Pemeran Cerdas

Setelah pemeriksaan is, biasanya Anda tidak memerlukan as sama sekali karena pemeran cerdas mulai bekerja.

Gunakan as eksplisit hanya saat pemeran cerdas tidak dapat diterapkan.

fun main() {
    val x: Any = "smart"
    if (x is String) {
        println(x.uppercase()) // smart cast, no as needed
    }
}

Pemeranan dalam Koleksi

Pemeranan aman berguna saat memfilter koleksi campuran.

filterIsInstance menggunakan is secara internal untuk hanya mempertahankan elemen yang cocok.

fun main() {
    val items: List<Any> = listOf(1, "two", 3, "four")
    val strings = items.filterIsInstance<String>()
    println(strings)
}

Memilih Operator yang Tepat

Panduan singkat:

  • Memerlukan boolean? gunakan is
  • Yakin dengan tipenya? gunakan as
  • Tidak yakin? gunakan as? dengan cadangan
fun describe(x: Any): String {
    val text = x as? String ?: return "not text"
    return "text of length " + text.length
}

fun main() {
    println(describe("hello"))
    println(describe(99))
}

Menyatukan Semuanya

Operator tipe memberi Anda kendali penuh:

  • is / !is memeriksa tipe
  • as melakukan pemeranan, tetapi dapat melempar pengecualian
  • as? melakukan pemeranan dengan aman dan mengembalikan null saat gagal
fun main() {
    val values: List<Any> = listOf(1, "hi", 2.5)
    for (v in values) {
        when {
            v is Int -> println("int " + v)
            v is String -> println("string " + v)
            else -> println("other")
        }
    }
}

Pemeriksaan Singkat

Uji pemahaman Anda tentang is dan as.

Rangkuman

Anda telah mempelajari operator tipe:

  • is dan !is untuk pemeriksaan tipe
  • as untuk pemeranan yang dapat melempar pengecualian
  • as? untuk pemeranan aman yang mengembalikan null

Selanjutnya, Anda akan membuat when mencakup semua kemungkinan untuk menangani setiap kasus.

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 “Operator is dan as” gratis?

Ya — teks lengkap “Operator is dan as” 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 “Operator is dan as”?

Pemeriksaan dan pengubahan tipe 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 “Operator is dan as” 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. when sebagai Ekspresi
  2. Pemeriksaan Cerdas
  3. Operator is dan as
  4. when Menyeluruh
← Kembali ke Kotlin Academy