การเชื่อมโยงออปชันนัลและพื้นฐานการจัดการข้อผิดพลาด
ใช้การเชื่อมโยงออปชันนัล รูปแบบ 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 crashdo/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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การเชื่อมโยงออปชันนัลและพื้นฐานการจัดการข้อผิดพลาด
- do/catch และการกำหนดข้อผิดพลาด (เอนัม)
- ชนิด Result — Result