0Pricing
Kotlin Academy · Pelajaran

Char dan Rentang Kustom

Lebih dari sekadar bilangan bulat

Char dan Rentang Kustom adalah pelajaran Kotlin Academy gratis di CoddyKit. Ini adalah pelajaran 4 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.

Di Luar Bilangan Bulat

Rentang tidak hanya untuk Int. Kotlin mendukung rentang karakter dan tipe lain yang dapat dibandingkan.

Pelajaran ini membahas rentang karakter dan cara tipe khusus dapat ikut digunakan dengan rangeTo.

Rangkuman Rentang Karakter

Karakter memiliki urutan yang ditentukan, sehingga 'a'..'z' merupakan rentang yang valid.

Anda dapat melakukan iterasi, memeriksa keanggotaan, dan banyak hal lainnya.

fun main() {
    for (c in 'a'..'f') print(c)
    println()
    println('q' in 'a'..'z')
}

Memvalidasi Karakter

Rentang karakter membuat validasi input lebih mudah dibaca, misalnya saat memeriksa digit atau huruf.

fun isDigit(c: Char): Boolean = c in '0'..'9'

fun main() {
    println(isDigit('7'))
    println(isDigit('x'))
}

Menghitung Huruf

Anda dapat membuat alfabet dengan cepat dengan melakukan iterasi pada rentang karakter dan mengumpulkan nilainya.

fun main() {
    val alphabet = ('a'..'z').toList()
    println(alphabet.size)
    println(alphabet.first())
    println(alphabet.last())
}

Rentang Bilangan Besar

Rentang juga berlaku untuk Long, yang berguna untuk rentang numerik berukuran besar.

Operator yang sama tetap berlaku.

fun main() {
    val big = 1L..5L
    println(big.sum())
}

Rentang yang Dapat Dibandingkan

Tipe Comparable apa pun dapat membentuk rentang dengan .., meskipun rentang seperti itu hanya mendukung pemeriksaan keanggotaan, bukan iterasi.

Sebagai contoh, rentang String memeriksa urutan leksikal.

fun main() {
    val range = "apple".."mango"
    println("cherry" in range)
    println("zebra" in range)
}

Mengapa Beberapa Rentang Tidak Dapat Diiterasi

Iterasi memerlukan langkah yang ditentukan. Bilangan bulat dan karakter memilikinya (menambahkan 1), tetapi string dan bilangan desimal tidak memiliki nilai berikutnya yang jelas.

Jadi, rentang tersebut mendukung in, tetapi tidak mendukung perulangan for.

fun main() {
    val r = 1.0..5.0
    println(2.5 in r)
    // for (x in r) // not allowed for Double
}

Tipe Khusus dengan rangeTo

Operator .. memanggil fungsi rangeTo. Jika kelas Anda menerapkan Comparable, Anda mendapatkan pemeriksaan keanggotaan rentang secara otomatis.

Di sini, sebuah kelas versi sederhana membandingkan nilai secara numerik.

data class Ver(val n: Int) : Comparable<Ver> {
    override fun compareTo(other: Ver) = n - other.n
}

fun main() {
    val range = Ver(1)..Ver(5)
    println(Ver(3) in range)
    println(Ver(9) in range)
}

Operator di Balik Layar

Menulis a..b sama dengan memanggil a.rangeTo(b).

Bentuk operator hanyalah sintaks yang lebih nyaman untuk fungsi yang sama.

fun main() {
    val r1 = 1..5
    val r2 = 1.rangeTo(5)
    println(r1.toList() == r2.toList())
}

Memilih Rentang yang Tepat

Panduan singkat:

  • Bilangan dan karakter → lakukan iterasi dan pemeriksaan
  • Bilangan desimal dan tipe yang dapat dibandingkan secara khusus → hanya periksa keanggotaan
  • Memerlukan langkah? Gunakan progresi bilangan bulat atau karakter
fun main() {
    println('m' in 'a'..'z')
    println(3.5 in 1.0..4.0)
    println(50 in 1..100)
}

Menyatukan Semuanya

Rentang dapat digunakan pada banyak tipe:

  • Rentang karakter dapat diiterasi dan digunakan untuk validasi
  • Rentang Long menangani rentang berukuran besar
  • Tipe yang dapat dibandingkan dan tipe khusus mendukung keanggotaan
  • .. adalah sintaks singkat untuk rangeTo
fun main() {
    val vowels = "aeiou"
    for (c in 'a'..'z') {
        if (c in vowels) print(c)
    }
    println()
}

Uji Cepat

Ujilah pemahaman Anda tentang rentang karakter dan rentang khusus.

Rangkuman

Anda telah mempelajari rentang karakter dan rentang khusus:

  • Rentang karakter dan Long dapat diiterasi seperti Int
  • Tipe yang dapat dibandingkan mendukung keanggotaan melalui ..
  • Tipe yang tidak diskret dapat memeriksa in, tetapi tidak dapat digunakan dalam perulangan
  • .. adalah singkatan dari rangeTo

Dengan demikian, kursus Rentang dan Progresi selesai.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Char dan Rentang Kustom” gratis?

Ya — teks lengkap “Char dan Rentang Kustom” 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 “Char dan Rentang Kustom”?

Lebih dari sekadar bilangan bulat 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 4 dari 4.

Berapa lama pelajaran “Char dan Rentang Kustom” 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. Operator Rentang
  2. Step dan downTo
  3. Rentang dalam Perulangan
  4. Char dan Rentang Kustom
← Kembali ke Kotlin Academy