การเชื่อมโยงค่าเริ่มต้น
รวมค่าทดแทนหลายค่าอย่างเป็นระเบียบ
การเชื่อมโยงค่าเริ่มต้น เป็นบทเรียน Swift Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Swift Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Swift Academy มีบทเรียนทั้งหมด 4 บทเรียน
มีค่าทดแทนมากกว่าหนึ่งค่า
บางครั้งคุณมีแหล่งข้อมูลที่เป็นค่าออปชันหลายแหล่ง และต้องการใช้ค่าแรกที่ไม่ใช่ nil คุณสามารถเชื่อมตัวดำเนินการ ?? หลายตัวเข้าด้วยกันได้
let primary: String? = nil
let secondary: String? = "Backup"
let name = primary ?? secondary ?? "Default"
print(name)การอ่านสายการเชื่อมค่า
ให้อ่าน a ?? b ?? c ว่า ใช้ a หากไม่ใช่ nil มิฉะนั้นใช้ b และหากยังไม่มีจึงใช้ c การประเมินจะหยุดลงเมื่อพบค่าแรก
let a: Int? = nil
let b: Int? = nil
let c = 7
print(a ?? b ?? c)ค่าที่ไม่ใช่ nil ตัวแรกเป็นผู้ชนะ
ทันทีที่ออปชันใดมีค่า ออปชันที่เหลือจะถูกละเว้น ในที่นี้ secondary เป็นค่าที่ถูกเลือก และจะไม่มีการไปถึงค่าเริ่มต้นสุดท้าย
let primary: Int? = nil
let secondary: Int? = 50
let fallback = 0
print(primary ?? secondary ?? fallback)ทุกค่าก่อนตัวสุดท้ายเป็นออปชัน
ในสายการเชื่อมค่า ตัวดำเนินการทุกตัวมักเป็นค่าออปชัน ยกเว้นตัวสุดท้าย ตัวสุดท้ายคือค่าเริ่มต้นที่ไม่ใช่ออปชันและรับประกันว่ามีค่า
let nick: String? = nil
let full: String? = nil
let result: String = nick ?? full ?? "Anonymous"
print(result)การประเมินแบบลัดวงจร
เช่นเดียวกับ && และ || สายของ ?? จะประเมินแบบลัดวงจร เมื่อพบค่าแล้ว นิพจน์ที่อยู่ถัดไปจะไม่ถูกประเมิน
func makeDefault() -> Int {
print("default computed")
return 0
}
let found: Int? = 9
print(found ?? makeDefault())การเชื่อมโยงจากขวา
ตัวดำเนินการ ?? เชื่อมโยงจากขวา ดังนั้น a ?? b ?? c จึงจัดกลุ่มเป็น a ?? (b ?? c) ซึ่งเป็นพฤติกรรมที่เหมาะกับการกำหนดค่าทดแทนพอดี
let x: Int? = nil
let y: Int? = nil
let z: Int? = 3
print(x ?? (y ?? (z ?? 0)))ค่าเริ่มต้นของการตั้งค่าแบบหลายชั้น
การเชื่อมค่าหลายตัวมีประโยชน์มากกับการตั้งค่าแบบหลายชั้น ได้แก่ การตั้งค่าของผู้ใช้ ตามด้วยการตั้งค่าของแอป และสุดท้ายคือค่าเริ่มต้นที่กำหนดไว้ตายตัว
let userTheme: String? = nil
let appTheme: String? = "light"
let theme = userTheme ?? appTheme ?? "system"
print(theme)การรวมกับการแปลงค่า
คุณสามารถเชื่อมการแปลงค่าที่อาจล้มเหลวกับค่าเริ่มต้นสุดท้าย เพื่อแยกวิเคราะห์ข้อมูลขาเข้าได้อย่างแข็งแรง
let raw: String? = nil
let parsed = raw.flatMap { Int($0) } ?? 0
print(parsed)การค้นหาพจนานุกรมในสายการเชื่อมค่า
คุณสามารถเชื่อมการค้นหาจากพจนานุกรมหลายครั้ง เพื่อใช้คีย์แรกที่พบ
let prefs = ["color": "blue"]
let pick = prefs["accent"] ?? prefs["color"] ?? "gray"
print(pick)ทำให้สายการเชื่อมค่าสั้น
ค่าทดแทนสองหรือสามค่าจะอ่านได้เข้าใจง่าย หากคุณพบว่าต้องเชื่อมค่าหลายตัว ควรแยกตรรกะออกมาเป็นฟังก์ชันเพื่อให้อ่านได้ชัดเจนขึ้น
let one: String? = nil
let two: String? = nil
let three = "C"
print(one ?? two ?? three)ชนิดผลลัพธ์ของสายการเชื่อมค่า
ผลลัพธ์สุดท้ายของสายการเชื่อมค่าจะไม่ใช่ออปชัน ตราบใดที่ตัวดำเนินการสุดท้ายไม่ใช่ออปชัน ทำให้สามารถนำค่าไปใช้ได้ทันทีอย่างปลอดภัย
let v1: Int? = nil
let v2: Int? = 4
let total: Int = (v1 ?? v2 ?? 0) + 1
print(total)ตรวจสอบอย่างรวดเร็ว
ทดลองใช้สายค่าทดแทน
สรุป: การเชื่อมค่าเริ่มต้น
เชื่อมตัวดำเนินการ ?? เพื่อทดลองใช้ค่าออปชันหลายค่าตามลำดับ และใช้ค่าเริ่มต้นสุดท้ายแทนเมื่อจำเป็น ค่าที่ไม่ใช่ nil ตัวแรกจะถูกเลือก การประเมินจะลัดวงจร และผลลัพธ์จะไม่ใช่ออปชัน
let p: String? = nil
let s: String? = "ok"
print(p ?? s ?? "none")คำถามที่พบบ่อย
บทเรียน “การเชื่อมโยงค่าเริ่มต้น” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การเชื่อมโยงค่าเริ่มต้น” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Swift Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Swift Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การเชื่อมโยงค่าเริ่มต้น”
รวมค่าทดแทนหลายค่าอย่างเป็นระเบียบ คุณปฏิบัติ Swift Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Swift Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Swift Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “การเชื่อมโยงค่าเริ่มต้น” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Swift Academy นี้ได้ไหม
ได้ บทเรียน Swift Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- ตัวดำเนินการรวมค่าเมื่อเป็น nil
- การเชื่อมโยงค่าเริ่มต้น
- ค่าเริ่มต้นในพารามิเตอร์ฟังก์ชัน
- ซับสคริปต์ค่าเริ่มต้นของพจนานุกรม