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

การผูกค่าเสริมหลายค่า

แกะค่าจากค่าเสริมหลายค่าภายในเงื่อนไขเดียว

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

การผูกค่าหลายค่าในครั้งเดียว

คุณสามารถแยกค่าทางเลือกหลายค่าออกจากค่าที่ห่อหุ้มภายใน if let เดียวได้โดยคั่นด้วยจุลภาค ทุกค่าต้องไม่เป็นค่าว่างจึงจะทำงานในเนื้อหาบล็อกได้

let a: Int? = 1
let b: Int? = 2
if let a, let b {
    print(a + b)
}

สำเร็จทั้งหมดหรือล้มเหลวทั้งหมด

หากค่าทางเลือกใด ๆ ในรายการเป็น nil บล็อกทั้งหมดจะถูกข้าม นี่คือการแยกค่าที่ห่อหุ้มแบบสำเร็จทั้งหมดหรือล้มเหลวทั้งหมด

let first: String? = "Ada"
let last: String? = nil
if let first, let last {
    print("\(first) \(last)")
} else {
    print("Missing a name")
}

รูปแบบเต็ม

รูปแบบเต็มใช้การกำหนดค่าอย่างชัดเจน: if let a = optA, let b = optB ส่วนรูปแบบย่อจะตัดชื่อที่ซ้ำกันออก

let optX: Int? = 10
let optY: Int? = 20
if let x = optX, let y = optY {
    print(x * y)
}

การผสมการผูกค่ากับเงื่อนไข

คุณสามารถสลับเงื่อนไขบูลีนกับการผูกค่าได้ เงื่อนไขลำดับถัดไปอาจใช้ค่าที่แยกออกจากค่าที่ห่อหุ้มแล้วก่อนหน้านั้น

let age: Int? = 25
if let age, age >= 18 {
    print("Adult: \(age)")
}

การแยกค่าที่ขึ้นต่อกัน

การผูกค่าลำดับถัดไปสามารถขึ้นต่อกับค่าก่อนหน้าได้ เนื่องจากแต่ละค่าจะถูกแยกออกจากค่าที่ห่อหุ้มตามลำดับจากซ้ายไปขวา

let dict = ["key": "42"]
if let text = dict["key"], let number = Int(text) {
    print(number + 8)
}

ลำดับมีความสำคัญ

การผูกค่าจะถูกประเมินตามลำดับและหยุดทำงานทันทีเมื่อพบความล้มเหลว หากรายการแรกไม่ผ่าน รายการถัดไปจะไม่ถูกประเมินเลย

func parse(_ s: String?) -> Int? {
    print("parsing")
    return s.flatMap { Int($0) }
}
let a: Int? = nil
if let a, let b = parse("5") {
    print(a + b)
} else {
    print("skipped")
}

การผูกค่าหลายค่าในคำสั่งตรวจสอบล่วงหน้า

รูปแบบที่คั่นด้วยจุลภาคแบบเดียวกันนี้ใช้กับ guard let ได้ โดยจะแยกค่าหลายค่าออกจากค่าที่ห่อหุ้มก่อนดำเนินการต่อ

func makeFullName(_ first: String?, _ last: String?) -> String {
    guard let first, let last else { return "Unknown" }
    return "\(first) \(last)"
}
print(makeFullName("Grace", "Hopper"))

การรวมการแปลงค่า

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

let wInput = "4"
let hInput = "5"
if let w = Int(wInput), let h = Int(hInput) {
    print("Area: \(w * h)")
}

หลีกเลี่ยงการผูกค่าแบบเงื่อนไขซ้อนกัน

หากไม่มีการผูกค่าหลายค่า คุณจะต้องซ้อนบล็อก if let หลายชั้นจนเกิดเป็นพีระมิด รูปแบบที่คั่นด้วยจุลภาคช่วยทำให้โครงสร้างนี้ราบเรียบ

let p: Int? = 2
let q: Int? = 3
if let p {
    if let q {
        print(p + q)
    }
}

รูปแบบที่ราบเรียบ

นี่คือตรรกะเดียวกับตัวอย่างที่ซ้อนกันก่อนหน้า แต่เขียนให้ราบเรียบด้วยการผูกค่าหลายค่าเพียงครั้งเดียว

let p: Int? = 2
let q: Int? = 3
if let p, let q {
    print(p + q)
}

พร้อมเงื่อนไขต่อท้าย

คุณสามารถปิดท้ายด้วยการตรวจสอบบูลีนเพื่อยืนยันผลลัพธ์ที่รวมกันแล้ว

let xs = "3"
let ys = "9"
if let x = Int(xs), let y = Int(ys), x < y {
    print("\(x) is less than \(y)")
}

ตรวจสอบอย่างรวดเร็ว

ทดสอบการผูกค่าทางเลือกหลายค่า

สรุป: การผูกค่าทางเลือกหลายค่า

แยกค่าทางเลือกหลายค่าออกจากค่าที่ห่อหุ้มภายใน if let หรือ guard let เดียวโดยใช้จุลภาค การทำงานจะสำเร็จทั้งหมดหรือล้มเหลวทั้งหมด ประเมินจากซ้ายไปขวา รองรับการผูกค่าที่ขึ้นต่อกัน และสามารถผสมเงื่อนไขบูลีนได้

let a: Int? = 1
let b: Int? = 2
if let a, let b { print(a + b) }

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

บทเรียน “การผูกค่าเสริมหลายค่า” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “การผูกค่าเสริมหลายค่า”

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

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

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

บทเรียน “การผูกค่าเสริมหลายค่า” ใช้เวลานานแค่ไหน

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

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

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

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

  1. if let และการผูกค่าแบบย่อ
  2. guard let สำหรับการออกก่อนกำหนด
  3. การผูกค่าเสริมหลายค่า
  4. รูปแบบค่าเสริมใน switch และ for
← กลับไปที่ Swift Academy