0Pricing
Swift Academy · Pelajaran

Tipe Result — Result<T, Error>

Representasikan keberhasilan atau kegagalan tanpa melempar galat menggunakan Result . Buat hasil, lakukan switch, gunakan map/flatMap, dan hubungkan dengan/dari throws.

Tipe Result — Result<T, Error> adalah pelajaran Swift Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 3. 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 Swift Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Swift Academy mencakup 3 pelajaran total.

Mengapa Result?

Tujuan: Gunakan Result<T, Error> untuk mengembalikan keberhasilan atau kegagalan secara eksplisit—sangat cocok untuk panggilan balik atau API yang menghindari pelemparan kesalahan.

Membuat Result

Buat .success(value) atau .failure(error) sebagai pengganti melemparkan kesalahan.

enum ParseError: Error { case badInt }
func parseInt(_ s: String) -> Result<Int, Error> {
    if let n = Int(s) { return .success(n) }
    else { return .failure(ParseError.badInt) }
}
print(parseInt("42"))
print(parseInt("nope"))

Memilih Hasil Result

Tangani hasil dengan pemilihan kasus agar jalur keberhasilan dan kegagalan tetap jelas.

let r = parseInt("10")
switch r {
case .success(let n): print("number =", n)
case .failure(let e): print("error:", e)
}

Mengubah Result

Ubah hasil yang berhasil dengan pemetaan, rangkai pekerjaan yang menghasilkan Result dengan flatMap, dan sesuaikan kesalahan menggunakan mapError.

let r1 = parseInt("5").map { $0 * 2 }              // Result<Int, Error>
let r2 = parseInt("x").map { $0 * 2 }                    // still .failure
let r3 = parseInt("8").flatMap { n in                    // chain Results
    n % 2 == 0 ? .success(n/2) : .failure(ParseError.badInt)
}
let rErr = parseInt("x").mapError { $0 }                 // transform error type if needed
print(r1, r2, r3, rErr)

Pelemparan → Result

Gunakan Result dengan blok percobaan untuk menangkap panggilan yang melemparkan kesalahan sebagai Result secara otomatis.

enum LoadError: Error { case notFound }
func load(text name: String) throws -> String {
    guard name == "ok" else { throw LoadError.notFound }
    return "loaded"
}
// Build a Result from a throwing call:
let res = Result { try load(text: "ok") }     // .success("loaded")
let res2 = Result { try load(text: "missing") } // .failure(LoadError.notFound)
print(res, res2)

Result → Pelemparan Kesalahan

Panggil get() untuk melemparkan ulang kesalahan dari Result, sehingga dapat digunakan kembali dalam kode yang melemparkan kesalahan.

let outcome = parseInt("12")
do {
    let value = try outcome.get()   // throws if .failure
    print("value =", value)
} catch {
    print("thrown from get():", error)
}

Makna Result

Pemeriksaan singkat: Apa yang direpresentasikan oleh Result<T, Error>?

Ringkasan

Ringkasan: Buat nilai Result, tangani dengan pemilihan kasus, ubah melalui pemetaan/flatMap/mapError, dan hubungkan dengan atau dari pelemparan kesalahan menggunakan penginisialisasi Result dengan blok percobaan serta get().

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Tipe Result — Result<T, Error>” gratis?

Ya — teks lengkap “Tipe Result — Result<T, Error>” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Swift Academy, upgrade ke CoddyKit PRO. Kursus Swift Academy mencakup 3 pelajaran total.

Apa yang akan aku pelajari di “Tipe Result — Result<T, Error>”?

Representasikan keberhasilan atau kegagalan tanpa melempar galat menggunakan Result . Buat hasil, lakukan switch, gunakan map/flatMap, dan hubungkan dengan/dari throws. Kamu berlatih Swift 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 Swift Academy?

Tidak diperlukan pengalaman sebelumnya. Swift 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 3.

Berapa lama pelajaran “Tipe Result — Result<T, Error>” 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 Swift Academy ini?

Ya. Setiap pelajaran Swift 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. Dasar optional chaining & penanganan galat
  2. do/catch & mendefinisikan galat (enum)
  3. Tipe Result — Result
← Kembali ke Swift Academy