0Pricing
Swift Academy · บทเรียน

พื้นฐาน Result<Success, Failure>

สร้างค่า Result และจับคู่รูปแบบเพื่อจัดการข้อผิดพลาดอย่างชัดเจน

พื้นฐาน Result<Success, Failure> เป็นบทเรียน Swift Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Swift Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Swift Academy มีบทเรียนทั้งหมด 4 บทเรียน

ยินดีต้อนรับ

`Result` คืออีนัมของ Swift ที่มีสองกรณี ได้แก่ `.success` และ `.failure` ซึ่งช่วยจัดการข้อผิดพลาดอย่างชัดเจนโดยไม่ต้องใช้ไวยากรณ์สำหรับการโยนและดักจับข้อผิดพลาด

การประกาศ Result

```swift func divide(_ a: Double, by b: Double) -> Result { guard b != 0 else { return .failure(.divisionByZero) } return .success(a / b) } enum DivisionError: Error { case divisionByZero } ```

การใช้งาน Result

```swift switch divide(10, by: 2) { case .success(let value): print("Result: \(value)") case .failure(let err): print("Error: \(err)") } ```

`get()` — โยนข้อผิดพลาดเมื่อล้มเหลว

```swift let result = divide(10, by: 0) do { let value = try result.get() // throws DivisionError } catch { print(error) } ```

การจัดเก็บผลลัพธ์

```swift var cache: [URL: Result] = [:] cache[url] = .success(data) cache[url] = .failure(URLError(.notConnectedToInternet)) ```

Result ในส่วนติดต่อแบบอะซิงโครนัส

```swift func fetch(url: URL, completion: @escaping (Result) -> Void) { URLSession.shared.dataTask(with: url) { data, _, error in if let data { completion(.success(data)) } else { completion(.failure(error ?? URLError(.unknown))) } }.resume() } ```

การจับคู่รูปแบบด้วย `if case`

```swift if case .success(let data) = result { process(data) } if case .failure(let err) = result { handle(err) } ```

พร็อพเพอร์ตีผลสำเร็จและความล้มเหลว

```swift let r: Result = .success(42) print(r.success) // Optional(42) — non-nil on success print(r.failure) // nil ```

การเริ่มต้นจากโค้ดที่โยนข้อผิดพลาด

```swift let result = Result { try JSONDecoder().decode(User.self, from: data) } // .success(user) or .failure(decodingError) ```

การเปรียบเทียบ Result

```swift let a: Result = .success(42) let b: Result = .success(42) // Cannot == directly unless Success/Failure are Equatable ```

ตรวจสอบความเข้าใจอย่างรวดเร็ว

เมื่อ Result เป็น `.failure` `result.get()` ทำอะไร

สรุป

ประเด็นสำคัญ: • `Result` — แสดงผลสำเร็จหรือล้มเหลวอย่างชัดเจนโดยไม่ต้องโยนข้อผิดพลาด • `.success(value)` / `.failure(error)` — มีสองกรณี • `.get()` จะโยนข้อผิดพลาดเมื่อล้มเหลว • `Result { try ... }` ใช้เชื่อมโค้ดที่โยนข้อผิดพลาด • มีประโยชน์สำหรับจัดเก็บหรือส่งต่อผลลัพธ์ที่ยังไม่ประมวลผล ต่อไป: map และ flatMap บน Result

คำถามที่พบบ่อย

บทเรียน “พื้นฐาน Result<Success, Failure>” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “พื้นฐาน Result<Success, Failure>” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Swift Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Swift Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “พื้นฐาน Result<Success, Failure>”

สร้างค่า Result และจับคู่รูปแบบเพื่อจัดการข้อผิดพลาดอย่างชัดเจน คุณปฏิบัติ Swift Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Swift Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Swift Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “พื้นฐาน Result<Success, Failure>” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Swift Academy นี้ได้ไหม

ได้ บทเรียน Swift Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. พื้นฐาน Result
  2. map และ flatMap บน Result
  3. ชนิดข้อผิดพลาดแบบกำหนดเองด้วย LocalizedError
  4. เชื่อม Result เข้ากับ async/await
← กลับไปที่ Swift Academy