Tipe Result
Modelkan keberhasilan dan kegagalan
Tipe Result adalah pelajaran Kotlin Academy gratis di CoddyKit. Ini adalah pelajaran 1 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.
Success atau Failure
Banyak operasi dapat gagal. Tipe Result Kotlin memodelkan hasil yang berupa success yang memuat nilai atau failure yang memuat pengecualian—tanpa melemparnya.
Membuat Success
Bungkus nilai dalam hasil success dengan Result.success(value).
fun main() {
val r: Result<Int> = Result.success(42)
println(r.isSuccess)
println(r.getOrNull())
}Membuat Failure
Nyatakan kesalahan dengan Result.failure(exception). Pengecualian tidak akan dilempar sampai Anda memilih untuk membukanya.
fun main() {
val r: Result<Int> = Result.failure(IllegalStateException("bad"))
println(r.isFailure)
println(r.exceptionOrNull()?.message)
}getOrNull dan exceptionOrNull
Periksa hasil dengan aman: getOrNull() mengembalikan nilai atau null, sedangkan exceptionOrNull() mengembalikan kesalahan atau null.
fun main() {
val ok = Result.success("hi")
val bad = Result.failure<String>(RuntimeException("oops"))
println(ok.getOrNull())
println(bad.exceptionOrNull()?.message)
}getOrDefault
Sediakan nilai cadangan untuk kegagalan dengan getOrDefault. Cara ini lebih bersih daripada pemeriksaan null saat Anda memiliki nilai bawaan yang masuk akal.
fun main() {
val bad: Result<Int> = Result.failure(Exception())
println(bad.getOrDefault(0))
val ok: Result<Int> = Result.success(7)
println(ok.getOrDefault(0))
}getOrElse
getOrElse menghitung nilai cadangan dari pengecualian, sehingga Anda dapat merespons secara berbeda terhadap berbagai kesalahan.
fun main() {
val r: Result<Int> = Result.failure(IllegalArgumentException("nope"))
val value = r.getOrElse { e -> if (e is IllegalArgumentException) -1 else -2 }
println(value)
}getOrThrow
Saat Anda memang menginginkan pengecualian tersebut, getOrThrow() mengembalikan nilai atau melempar kembali pengecualian yang tersimpan.
fun main() {
val ok = Result.success(10)
println(ok.getOrThrow())
try {
Result.failure<Int>(IllegalStateException("fail")).getOrThrow()
} catch (e: Exception) {
println("caught: " + e.message)
}
}Mengembalikan Result
Sebuah fungsi dapat mengembalikan Result untuk membuat kegagalan terlihat jelas dalam tanda tangannya, sehingga pemanggil harus menangani kedua hasil.
fun parse(s: String): Result<Int> {
val n = s.toIntOrNull()
return if (n != null) Result.success(n)
else Result.failure(NumberFormatException(s))
}
fun main() {
println(parse("123").getOrNull())
println(parse("x").exceptionOrNull()?.message)
}Result Dibandingkan dengan Pengecualian
Pengecualian tidak terlihat dalam tanda tangan dan mengganggu alur kendali. Result menjadikan kegagalan sebagai nilai yang dapat Anda teruskan dan ubah seperti nilai lainnya—jelas, dapat disusun, dan sulit diabaikan.
Kapan Menggunakan Result
Gunakan Result untuk kegagalan yang dapat dipulihkan dan memang diperkirakan, yang ingin Anda tangani di pemanggil. Tetap gunakan pengecualian untuk situasi yang benar-benar luar biasa, seperti kesalahan pemrogram akibat pelanggaran kontrak.
Nilai, Bukan Lompatan
Perubahan utamanya adalah: kesalahan menjadi nilai pengembalian biasa. Berikutnya Anda akan mempelajari runCatching, yang secara otomatis menangkap pengecualian yang dilempar ke dalam Result.
Pemeriksaan Singkat
Uji pemahaman Anda tentang tipe Result.
Ringkasan
Anda telah mempelajari tipe Result:
- Buat dengan
Result.success/Result.failure - Periksa dengan
getOrNull,exceptionOrNull - Pulihkan dengan
getOrDefault,getOrElse,getOrThrow - Kembalikan tipe ini agar kegagalan terlihat jelas
Berikutnya: runCatching.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Tipe Result” gratis?
Ya — teks lengkap “Tipe Result” 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 “Tipe Result”?
Modelkan keberhasilan dan kegagalan 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 1 dari 4.
Berapa lama pelajaran “Tipe Result” 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.