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

ตัวดำเนินการรวมค่าเมื่อเป็น nil

กำหนดค่าเริ่มต้นเมื่อค่าเสริมเป็น nil

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

ปัญหาของค่า nil

ค่าออปชันอาจเก็บค่าไว้หรือเป็น nil ก็ได้ บ่อยครั้งคุณต้องการใช้ค่าดังกล่าวเมื่อมีค่าอยู่ หรือใช้ค่าเริ่มต้นแทนเมื่อเป็น nil

let typedName: String? = nil
let name = typedName ?? "Guest"
print(name)

ตัวดำเนินการ ??

ตัวดำเนินการรวมค่าเมื่อไม่มีข้อมูล ?? รับค่าออปชันทางซ้ายและค่าเริ่มต้นทางขวา หากค่าออปชันไม่ใช่ nil คุณจะได้ค่าที่แกะออกมาแล้ว มิฉะนั้นจะได้ค่าเริ่มต้น

let stored: Int? = 42
let value = stored ?? 0
print(value)

ใช้ค่าเริ่มต้นเฉพาะเมื่อเป็น nil

ค่าเริ่มต้นทางขวาจะถูกใช้ก็ต่อเมื่อค่าทางซ้ายเป็น nil เท่านั้น ค่าที่มีอยู่ แม้จะเป็น 0 หรือสตริงว่าง ก็จะยังคงถูกเก็บไว้

let count: Int? = 0
let result = count ?? 99
print(result)

ผลลัพธ์ไม่ใช่ออปชัน

นิพจน์ optional ?? default จะให้ค่าที่ไม่ใช่ออปชัน เพราะมีค่าที่ใช้แทนได้เสมอ

let nickname: String? = nil
let display: String = nickname ?? "Anonymous"
print(display)

แทนที่ if let

หากไม่มี ?? คุณจะต้องเขียน if/else เพื่อแกะค่าและกำหนดค่าเริ่มต้น การรวมค่าเมื่อไม่มีข้อมูลจะย่อทั้งหมดให้เป็นนิพจน์เดียว

let age: Int? = nil
var finalAge: Int
if let unwrapped = age {
    finalAge = unwrapped
} else {
    finalAge = 18
}
print(finalAge)

ตรรกะเดิมด้วย ??

ตัวอย่างก่อนหน้านี้เขียนใหม่โดยใช้การรวมค่าเมื่อไม่มีข้อมูล วิธีนี้สั้นกว่าและสื่อเจตนาได้อย่างชัดเจน

let age: Int? = nil
let finalAge = age ?? 18
print(finalAge)

การรวมค่าในอินเตอร์โพเลชัน

คุณสามารถใส่ ?? โดยตรงภายในการแทรกค่าในสตริง เพื่อแสดงค่าทดแทนที่เป็นมิตรต่อผู้ใช้

let city: String? = nil
print("City: \(city ?? "Unknown")")

จากการแปลงที่อาจล้มเหลว

การแปลงสตริงเป็นจำนวนเต็มจะคืนค่าออปชัน การรวมค่าเมื่อไม่มีข้อมูลจะให้ค่าเริ่มต้นเมื่อข้อความนั้นไม่ใช่ตัวเลข

let text = "abc"
let number = Int(text) ?? -1
print(number)

การรวมค่ากับพจนานุกรม

การค้นหาคีย์ในพจนานุกรมจะคืนค่าออปชัน ใช้ ?? เพื่อกำหนดค่าทดแทนเมื่อไม่พบคีย์

let scores = ["Ann": 90]
let bob = scores["Bob"] ?? 0
print(bob)

ค่าเริ่มต้นสามารถคำนวณได้

ด้านขวาสามารถเป็นนิพจน์ใดก็ได้ที่มีชนิดถูกต้อง แม้แต่การเรียกใช้ฟังก์ชัน โดยนิพจน์นั้นจะถูกประเมินเมื่อจำเป็นเท่านั้น

func defaultName() -> String {
    return "Player1"
}
let entered: String? = nil
print(entered ?? defaultName())

ชนิดข้อมูลต้องตรงกัน

ค่าเริ่มต้นต้องเข้ากันได้กับชนิดข้อมูลที่ห่ออยู่ในค่าออปชัน Int? ต้องใช้ค่าเริ่มต้นชนิด Int

let maybe: Int? = nil
let safe = maybe ?? 100
print(safe + 1)

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

ทดลองใช้การรวมค่าเมื่อไม่มีข้อมูล

สรุป: ตัวดำเนินการรวมค่าเมื่อไม่มีข้อมูล

ตัวดำเนินการ ?? จะแกะค่าออปชันออกมา หรือใช้ค่าเริ่มต้นแทน และให้ผลลัพธ์ที่ไม่ใช่ออปชัน ค่าเริ่มต้นจะถูกใช้เฉพาะเมื่อค่าออปชันเป็น nil เท่านั้น

let input: String? = nil
let name = input ?? "Default"
print(name)

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

บทเรียน “ตัวดำเนินการรวมค่าเมื่อเป็น nil” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “ตัวดำเนินการรวมค่าเมื่อเป็น nil”

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

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

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

บทเรียน “ตัวดำเนินการรวมค่าเมื่อเป็น nil” ใช้เวลานานแค่ไหน

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

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

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

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

  1. ตัวดำเนินการรวมค่าเมื่อเป็น nil
  2. การเชื่อมโยงค่าเริ่มต้น
  3. ค่าเริ่มต้นในพารามิเตอร์ฟังก์ชัน
  4. ซับสคริปต์ค่าเริ่มต้นของพจนานุกรม
← กลับไปที่ Swift Academy