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

บทนำออปชันนัล: ?, nil, if let, guard let และ ??

เรียนรู้ตัวเลือกหรือออปชันนัล การประกาศด้วย ? การแทนค่าที่หายไปด้วย nil และการดึงค่าด้วย if let, guard let และ ??

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

ออปชันนัลคืออะไร

ออปชันนัลใช้แทนค่าที่อาจมีอยู่หรือเป็น nil เติม ? ต่อท้ายชนิดข้อมูลเพื่อทำให้เป็นออปชันนัล

  • จัดการกรณีไม่มีค่าอย่างชัดเจน
  • ช่วยหลีกเลี่ยงการหยุดทำงานจำนวนมาก

การผูกค่าด้วย if let

ประกาศด้วย ? จากนั้นใช้ if let เพื่อแกะค่าอย่างปลอดภัยเมื่อมีค่าอยู่

var nickname: String? = nil
print("nickname =", String(describing: nickname))

// Optional binding with if let
let input: String? = "Ada"
if let name = input {
    print("Hello, \\(name)")
} else {
    print("No name")
}

guard let

guard let จะแกะค่าและออกจากการทำงานตั้งแต่เนิ่น ๆ เมื่อพบ nil ทำให้โค้ดเป็นเส้นตรงและอ่านง่าย

func greet(_ maybeName: String?) {
    guard let name = maybeName else {
        print("Missing name"); return
    }
    print("Hi, \\(name)!")
}
greet(nil)
greet("Grace")

การรวมค่า nil (??)

ใช้ ?? เพื่อกำหนดค่าเริ่มต้นเมื่อออปชันนัลเป็น nil

let provided: String? = nil
let username = provided ?? "Guest"
print("Username:", username)

การเชื่อมโยงออปชันนัล

การเชื่อมโยงออปชันนัล (?.) จะหยุดการเชื่อมโยงเมื่อส่วนใดส่วนหนึ่งเป็น nil

struct Profile { var city: String? }
struct User { var profile: Profile? }

let u1 = User(profile: Profile(city: "Paris"))
let u2 = User(profile: nil)

// Optional chaining safely traverses missing links
print(u1.profile?.city?.uppercased() ?? "No city")  // "PARIS"
print(u2.profile?.city ?? "No city")                // "No city"

เคล็ดลับและข้อควรระวัง

เคล็ดลับ:

  • หลีกเลี่ยง ! (การแกะค่าแบบบังคับ) เว้นแต่คุณจะแน่ใจ 100% ว่าค่านั้นไม่เป็น nil
  • เลือกใช้ if let หรือ guard let เพื่อให้โค้ดชัดเจน
  • ใช้ ?? เพื่อกำหนดค่าเริ่มต้นที่ปลอดภัย

การทำงานของ guard let

ตรวจสอบอย่างรวดเร็ว: guard let ทำหน้าที่อะไร

ทบทวน

ทบทวน: ประกาศออปชันนัลด้วย ? ใช้ nil แทนกรณีไม่มีค่า แกะค่าด้วย if let หรือ guard let และกำหนดค่าเริ่มต้นด้วย ?? ใช้การเชื่อมโยงออปชันนัลเพื่อเข้าถึงค่าต่อเนื่องอย่างปลอดภัย

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

บทเรียน “บทนำออปชันนัล: ?, nil, if let, guard let และ ??” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “บทนำออปชันนัล: ?, nil, if let, guard let และ ??”

เรียนรู้ตัวเลือกหรือออปชันนัล การประกาศด้วย ? การแทนค่าที่หายไปด้วย nil และการดึงค่าด้วย if let, guard let และ ?? คุณปฏิบัติ Swift Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

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

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

บทเรียน “บทนำออปชันนัล: ?, nil, if let, guard let และ ??” ใช้เวลานานแค่ไหน

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

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

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

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

  1. let กับ var การอนุมานชนิด ลิเทอรัล และทูเพิล
  2. ชนิดพื้นฐาน: ตัวเลข Bool String และ Character
  3. บทนำออปชันนัล: ?, nil, if let, guard let และ ??
← กลับไปที่ Swift Academy