Membuat Sequence
Dari koleksi dan pembangkit
Membuat Sequence 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.
Membuat Urutan
Ada beberapa cara untuk membuat sebuah Sequence: dari koleksi yang sudah ada, dari elemen, dengan fungsi pembangkit, atau dengan pembangun. Pelajaran ini membahas semuanya.
Dari Koleksi dengan asSequence
Pendekatan yang paling umum adalah memanggil asSequence() pada koleksi yang sudah ada untuk memprosesnya secara malas.
fun main() {
val seq = listOf(1, 2, 3, 4).asSequence()
val result = seq.map { it * 2 }.toList()
println(result)
}Dari Elemen dengan sequenceOf
sequenceOf membuat urutan secara langsung dari sekumpulan nilai tetap.
fun main() {
val seq = sequenceOf("a", "b", "c")
seq.forEach { println(it) }
}Urutan Tak Terbatas dengan generateSequence
generateSequence membuat urutan yang mungkin tak terbatas dari nilai awal dan fungsi yang menghitung elemen berikutnya. Padukan dengan take untuk membatasinya.
fun main() {
val powers = generateSequence(1) { it * 2 }
val first5 = powers.take(5).toList()
println(first5)
}Menghentikan generateSequence
Jika fungsi elemen berikutnya mengembalikan null, urutan berakhir. Dengan demikian Anda dapat menghasilkan elemen sampai suatu kondisi terpenuhi.
fun main() {
val countdown = generateSequence(5) { if (it > 1) it - 1 else null }
println(countdown.toList())
}generateSequence Tanpa Nilai Awal
Anda dapat meneruskan satu fungsi lambda penghasil yang mengembalikan nilai berikutnya atau null. Ini berguna untuk membaca aliran masukan secara malas.
fun main() {
var n = 0
val seq = generateSequence { if (n < 3) n++ else null }
println(seq.toList())
}Pembangun Urutan
Pembangun sequence { } memungkinkan Anda menghasilkan elemen secara imperatif menggunakan yield (satu nilai) dan yieldAll (banyak nilai).
fun main() {
val seq = sequence {
yield(1)
yield(2)
yieldAll(listOf(3, 4))
}
println(seq.toList())
}Menghasilkan Nilai Secara Malas
Pembangun ini juga bekerja secara malas: kode di antara yield dijalankan hanya saat elemen diambil. Jika digabungkan dengan take, Anda dapat mendeskripsikan pembangkit tak terbatas dengan aman.
fun main() {
val naturals = sequence {
var i = 1
while (true) {
yield(i)
i++
}
}
println(naturals.take(4).toList())
}Fibonacci dengan generateSequence
Contoh klasik: hasilkan bilangan Fibonacci secara malas menggunakan pasangan sebagai keadaan.
fun main() {
val fib = generateSequence(Pair(0, 1)) { Pair(it.second, it.first + it.second) }
.map { it.first }
println(fib.take(8).toList())
}Mengonversi Kembali Menjadi Koleksi
Sebuah urutan menjadi koleksi konkret hanya ketika Anda memanggil operasi akhir seperti toList(), toSet(), atau toMutableList().
fun main() {
val set = sequenceOf(1, 2, 2, 3).toSet()
println(set)
}Memilih Metode Pembuatan
Gunakan asSequence() untuk data yang sudah ada, sequenceOf untuk nilai tetap, generateSequence untuk deret yang dihitung, dan pembangun sequence { } untuk pembangkitan imperatif khusus.
Pemeriksaan Singkat
Bagaimana generateSequence mengetahui kapan harus berhenti?
Ringkasan
Anda dapat membuat urutan dengan asSequence(), sequenceOf, generateSequence (nilai awal ditambah nilai berikutnya, berakhir dengan null), dan pembangun sequence { } dengan yield/yieldAll. Selanjutnya Anda akan melihat bagaimana operasi malas menghindari daftar perantara.
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 “Membuat Sequence” gratis?
Ya — teks lengkap “Membuat Sequence” 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 “Membuat Sequence”?
Dari koleksi dan pembangkit 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 “Membuat Sequence” 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
- Mengapa Menggunakan Sequence
- Membuat Sequence
- Operasi Malas
- Sequence versus Koleksi