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

พารามิเตอร์ in-out และพื้นฐานการจัดการข้อผิดพลาด (throws)

เปลี่ยนแปลงอาร์กิวเมนต์ด้วยพารามิเตอร์ in-out และจัดการความล้มเหลวที่กู้คืนได้ด้วย throws, try และ do/catch

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

บทนำ

บทเรียนนี้ครอบคลุมพารามิเตอร์แบบ อินเอาต์ (ใช้เปลี่ยนแปลงตัวแปรของผู้เรียก) และการจัดการข้อผิดพลาดเบื้องต้นด้วย การโยนข้อผิดพลาด, การลอง และ การทำ/จับ

พื้นฐานอินเอาต์

อินเอาต์ทำให้ฟังก์ชันเปลี่ยนแปลงตัวแปรของผู้เรียกได้ เรียกใช้ด้วย &name

func increment(_ value: inout Int) {
    value += 1   // mutate caller's variable
}
var count = 0
increment(&count)
print("count =", count)  // 1

ควรใช้เมื่อใด

ใช้ อินเอาต์ อย่างพอเหมาะ:

  • เหมาะกับการเปลี่ยนค่าอย่างง่าย เช่น ตัวนับ
  • ควรคืนค่าใหม่เพื่อให้โค้ดอ่านเข้าใจง่ายและทดสอบได้

การโยนข้อผิดพลาดและการทำ/จับ

ระบุฟังก์ชันที่อาจล้มเหลวด้วย การโยนข้อผิดพลาด ใช้ การทำ/ลอง/จับ เพื่อจัดการข้อผิดพลาด

enum FileError: Error { case notFound, unreadable }

func readFile(named: String) throws -> String {
    if named.isEmpty { throw FileError.notFound }
    return "contents of \\(named)"
}

// Calling a throwing function
do {
    let text = try readFile(named: "notes.txt")
    print(text)
} catch {
    print("Failed:", error)
}

ลอง? เทียบกับ ลอง!

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

// try? converts errors to nil (optional)
let maybeText = try? readFile(named: "")
print(maybeText as Any)  // nil

// try! crashes on error—only use when you are sure
// let forcedText = try! readFile(named: "")  // avoid in production

ตัวช่วยที่โยนข้อผิดพลาด

คุณสามารถโยนข้อผิดพลาดจากฟังก์ชันตัวช่วยได้ ควรใช้ชนิดแจกแจงขนาดเล็กสำหรับข้อผิดพลาดที่กำหนดเอง และหลีกเลี่ยง NSError ดิบเว้นแต่จำเป็น

func parseInt(_ s: String) throws -> Int {
    if let n = Int(s) { return n }
    else { throw NSError(domain: "Parse", code: 1) }
}

do {
    let n = try parseInt("10")
    print("n =", n)
} catch {
    print("parse error")
}

คำถามเรื่องอินเอาต์

ตรวจสอบอย่างรวดเร็ว: อินเอาต์ หมายถึงอะไรสำหรับพารามิเตอร์

สรุปทบทวน

สรุปทบทวน: ใช้ อินเอาต์ เพื่อเปลี่ยนค่าโดยตรงอย่างพอเหมาะ จัดการความล้มเหลวด้วย การโยนข้อผิดพลาด, การลอง และ การทำ/จับ ควรใช้ การลอง? สำหรับผลลัพธ์ที่เลือกได้ และหลีกเลี่ยง การลอง! ในโปรแกรมจริง

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

บทเรียน “พารามิเตอร์ in-out และพื้นฐานการจัดการข้อผิดพลาด (throws)” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “พารามิเตอร์ in-out และพื้นฐานการจัดการข้อผิดพลาด (throws)”

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

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

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

บทเรียน “พารามิเตอร์ in-out และพื้นฐานการจัดการข้อผิดพลาด (throws)” ใช้เวลานานแค่ไหน

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

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

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

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

  1. การกำหนดฟังก์ชัน พารามิเตอร์ ป้ายกำกับ ค่าเริ่มต้น และอาร์กิวเมนต์แปรผัน
  2. ค่าที่ส่งกลับและการส่งกลับหลายค่าผ่านทูเพิล
  3. พารามิเตอร์ in-out และพื้นฐานการจัดการข้อผิดพลาด (throws)
← กลับไปที่ Swift Academy