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

การเชื่อมโยงออปชันนัลและพื้นฐานการจัดการข้อผิดพลาด

ใช้การเชื่อมโยงออปชันนัล รูปแบบ guard, try?/try! และ do/catch เพื่อจัดการค่าที่ไม่มีอยู่และข้อผิดพลาด เรียนรู้ Result ในฐานะทางเลือก

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

บทนำ

บทเรียนนี้เชื่อมโยงออปชันนัลเข้ากับการจัดการข้อผิดพลาด โดยจะสำรวจการเชื่อมต่อแบบลูกโซ่ รูปแบบ guard try?/try! และ Result

การเชื่อมต่อออปชันนัลแบบลูกโซ่

การเชื่อมต่อออปชันนัลแบบลูกโซ่ (a?.b?.c) จะหยุดและส่งคืน nil หากลิงก์ใดเป็น nil

struct User { var address: Address? }
struct Address { var city: String }
let u: User? = User(address: Address(city: "Paris"))
print(u?.address?.city)   // Optional("Paris")

รูปแบบ guard

guard let จะออกจากฟังก์ชันก่อนเวลาหากออปชันนัลเป็น nil และทำให้ค่าที่แกะห่อแล้วใช้งานต่อได้หลังจากนั้น

func greet(_ name: String?) {
    guard let n = name else {
        print("No name")
        return
    }
    print("Hello, \\(n)!")
}
greet(nil)
greet("Ada")

try? กับ try!

try? ส่งคืน nil เมื่อเกิดข้อผิดพลาด ส่วน try! จะทำให้โปรแกรมล้มเหลวหากมีการโยนข้อผิดพลาด

enum ParseErr: Error { case bad }
func parse(_ s: String) throws -> Int {
    guard let n = Int(s) else { throw ParseErr.bad }
    return n
}
let ok = try? parse("10")   // Int?
let fail = try? parse("xx") // nil
// let crash = try! parse("xx")  // runtime crash

do/catch

do/catch จัดการข้อผิดพลาดที่ถูกโยนออกมาอย่างชัดเจน

do {
    let n = try parse("42")
    print(n)
} catch {
    print("error:", error)
}

ชนิด Result

Result<T,Error> เข้ารหัส success/failure โดยไม่ต้องโยนข้อผิดพลาด

func safeParse(_ s: String) -> Result<Int,Error> {
    do { return .success(try parse(s)) }
    catch { return .failure(error) }
}
print(safeParse("5"))
print(safeParse("oops"))

คำถามเกี่ยวกับการเชื่อมต่อออปชันนัล

ตรวจสอบอย่างรวดเร็ว: การเชื่อมต่อออปชันนัลทำหน้าที่อะไร

สรุปทบทวน

สรุปทบทวน: ผสานออปชันนัลเข้ากับการจัดการข้อผิดพลาด ใช้การเชื่อมต่อแบบลูกโซ่ guard try?/try! do/catch และ Result เพื่อจัดการค่าที่ไม่มีอยู่และความล้มเหลวอย่างปลอดภัย

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

บทเรียน “การเชื่อมโยงออปชันนัลและพื้นฐานการจัดการข้อผิดพลาด” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “การเชื่อมโยงออปชันนัลและพื้นฐานการจัดการข้อผิดพลาด”

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

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

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

บทเรียน “การเชื่อมโยงออปชันนัลและพื้นฐานการจัดการข้อผิดพลาด” ใช้เวลานานแค่ไหน

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

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

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

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

  1. การเชื่อมโยงออปชันนัลและพื้นฐานการจัดการข้อผิดพลาด
  2. do/catch และการกำหนดข้อผิดพลาด (เอนัม)
  3. ชนิด Result — Result
← กลับไปที่ Swift Academy