Zig Academy · บทเรียน

แกะค่าอย่างปลอดภัยด้วย if และ orelse

จัดการค่า null โดยไม่เกิดเรื่องไม่คาดคิด

บทเรียน 2 จาก 413 ขั้นตอน

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

ต้องแกะค่าก่อน

optional ไม่ใช่ค่าที่อยู่ภายในตัวมันเอง ก่อนใช้ข้อมูลข้างใน คุณต้อง แกะค่า และจัดการกับกรณี null ก่อน

จับค่าด้วย if

การใช้ if กับ optional สามารถผูกค่าภายในด้วยการจับค่าผ่านเครื่องหมาย pipe ได้ บล็อกคำสั่งจะทำงานเฉพาะเมื่อ optional ไม่ใช่ null

if (maybe) |value| {
    use(value);
}

จัดการแขนง null

เพิ่ม else เพื่อตอบสนองเมื่อ optional เป็น null ตอนนี้ผลลัพธ์ทั้งสองกรณีได้รับการจัดการครบ จึงไม่มีกรณีใดตกหล่น

if (maybe) |v| {
    use(v);
} else {
    handleEmpty();
}

ค่าที่จับได้ถูกแกะแล้ว

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

if (age) |a| {
    // a is i32, not ?i32
}

orelse จัดเตรียมค่าเริ่มต้น

ตัวดำเนินการ orelse จะแกะค่า optional แต่ถ้าเป็น null ก็จะคืนค่าที่อยู่ทางขวาแทน

const a = age orelse 0;

orelse เป็นนิพจน์

เนื่องจาก orelse คืนค่า คุณจึงใช้มันแทรกไว้ที่ใดก็ได้ เช่น ส่งตัวเลขที่มีค่าเริ่มต้นให้กับการเรียกฟังก์ชันโดยตรง

print(level orelse 1);

orelse เรียกใช้โค้ดได้

ด้านขวาของ orelse อาจเป็นบล็อกคำสั่งได้ ใช้เพื่อคำนวณค่าทดแทน หรือแม้แต่คืนค่าก่อนกำหนดจากฟังก์ชันปัจจุบัน

const v = lookup() orelse return;

บังคับแกะค่าด้วย .?

การเขียน .? เป็นการยืนยันว่า optional ไม่ใช่ null และคืนค่าภายในออกมา หากเป็น null ในการสร้างแบบปลอดภัย โปรแกรมจะเกิดข้อผิดพลาดร้ายแรง

const a = age.?;

ใช้ .? เมื่อมั่นใจเท่านั้น

ใช้ .? เฉพาะเมื่อเป็นไปไม่ได้จริง ๆ ที่ค่าจะเป็น null มิฉะนั้นควรใช้ if หรือ orelse เพื่อไม่ให้ค่าว่างทำให้โปรแกรมหยุดทำงาน

เลือกตามเจตนา

ใช้ if เพื่อแยกตามการมีค่า ใช้ orelse สำหรับค่าเริ่มต้นอย่างรวดเร็ว และใช้ .? เฉพาะเมื่อพิสูจน์ได้ว่ามีค่าอยู่จริง

ความปลอดภัยเป็นค่าเริ่มต้น

เครื่องมือแต่ละอย่างบังคับให้คุณรับรู้ถึง null นี่คือเหตุผลที่ optional ของ Zig แทบไม่กลายเป็น การหยุดทำงาน โดยไม่คาดคิดเหมือนในภาษาอื่น

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

คุณต้องการให้ค่าเริ่มต้นเป็น 0 เมื่อจำนวนเต็มแบบ optional เป็น null วิธีใดเหมาะที่สุด

สรุป

คุณสามารถแกะค่า optional ด้วยการจับค่าผ่าน if กำหนดค่าเริ่มต้นด้วย orelse หรือยืนยันค่าด้วย .? แต่ละวิธีทำให้คุณต้องจัดการกับ null โดยตั้งใจ ✅

เริ่มต้นได้ฟรี

เรียนรู้ Zig ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
30
บทเรียน
120

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

บทเรียน “แกะค่าอย่างปลอดภัยด้วย if และ orelse” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “แกะค่าอย่างปลอดภัยด้วย if และ orelse”

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

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

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

บทเรียน “แกะค่าอย่างปลอดภัยด้วย if และ orelse” ใช้เวลานานแค่ไหน

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

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

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

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

  1. ประกาศชนิดออปชัน
  2. แกะค่าอย่างปลอดภัยด้วย if และ orelse
  3. พอยน์เตอร์แบบออปชันและ ?*T
  4. null เทียบกับ undefined
← กลับไปที่ Zig Academy