แกะค่าอย่างปลอดภัยด้วย if และ orelse
จัดการค่า null โดยไม่เกิดเรื่องไม่คาดคิด
แกะค่าอย่างปลอดภัยด้วย 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- ประกาศชนิดออปชัน
- แกะค่าอย่างปลอดภัยด้วย if และ orelse
- พอยน์เตอร์แบบออปชันและ ?*T
- null เทียบกับ undefined