พารามิเตอร์และค่าของ comptime
ส่งค่าที่มีอยู่ตั้งแต่เวลาคอมไพล์
พารามิเตอร์และค่าของ comptime เป็นบทเรียน Zig Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Zig Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Zig Academy มีบทเรียนทั้งหมด 4 บทเรียน
อาร์กิวเมนต์บางอย่างต้องทราบล่วงหน้า
บางครั้งฟังก์ชันต้องการอาร์กิวเมนต์ที่คอมไพเลอร์มองเห็นได้ ไม่ใช่แค่โปรแกรมที่กำลังทำงาน Zig ให้คุณกำหนดพารามิเตอร์ดังกล่าวเป็น comptime ได้ 🧩
กำหนดพารามิเตอร์เป็น comptime
เขียน comptime ไว้หน้าชื่อพารามิเตอร์เพื่อกำหนดให้ค่าของมันต้องทราบในเวลาคอมไพล์ ผู้เรียกจะต้องส่งค่าที่ทราบอยู่แล้วเข้ามา
fn repeat(comptime n: usize) void {}ผู้เรียกส่งค่าที่ทราบอยู่แล้ว
พารามิเตอร์ comptime รับได้เฉพาะค่าที่คอมไพเลอร์ทราบอยู่แล้ว เช่น ค่าตามตัวอักษรหรือค่าคงที่เวลาคอมไพล์อื่น ๆ
repeat(3);ค่าขณะทำงานจะถูกปฏิเสธ
หากส่งค่าที่ทราบได้เฉพาะในเวลาทำงานเข้าไปยังพารามิเตอร์ comptime Zig จะแจ้งข้อผิดพลาดขณะคอมไพล์อย่างชัดเจน
comptime ภายในเนื้อหาฟังก์ชัน
คุณยังสามารถบังคับให้นิพจน์เฉพาะที่ประเมินตั้งแต่เนิ่น ๆ ได้ บล็อก comptime จะทำงานระหว่างการคอมไพล์และสร้างค่าคงที่
const table = comptime buildTable();comptime var สำหรับสถานะเวลาคอมไพล์
comptime var คือตัวแปรที่เปลี่ยนค่าได้และมีอยู่เฉพาะระหว่างการคอมไพล์ ใช้เพื่อสะสมค่าในขณะที่โค้ดเวลาคอมไพล์ทำงาน
comptime var sum = 0;ค่าที่ทราบช่วยปรับเฉพาะฟังก์ชัน
เนื่องจากอาร์กิวเมนต์ comptime มีค่าตายตัว Zig จึงสามารถสร้างฟังก์ชันรุ่นที่ปรับให้เหมาะกับค่าดังกล่าวโดยเฉพาะได้
ผสมพารามิเตอร์ comptime กับพารามิเตอร์ปกติ
ฟังก์ชันหนึ่งรับพารามิเตอร์ทั้งสองชนิดพร้อมกันได้: พารามิเตอร์ comptime สำหรับส่วนที่ทราบล่วงหน้า และพารามิเตอร์ปกติสำหรับข้อมูลขณะทำงาน
fn scale(comptime factor: u8, x: u32) u32 {
return x * factor;
}ตรวจสอบอาร์กิวเมนต์ตั้งแต่เนิ่น ๆ
เมื่อทราบค่าแล้ว คุณสามารถตรวจสอบได้ระหว่างการคอมไพล์และหยุดการสร้างโปรแกรมหากค่าผิด ก่อนที่โปรแกรมจะเริ่มทำงาน ✅
ไม่มีต้นทุนขณะทำงาน
งานที่ขับเคลื่อนด้วยพารามิเตอร์ comptime จะเกิดขึ้นระหว่างการสร้างโปรแกรม ไบนารีที่ได้จะเก็บผลลัพธ์ไว้โดยไม่เหลือสิ่งใดให้คำนวณอีก
ภายในฟังก์ชัน พารามิเตอร์จะเป็นค่าคงที่
ภายในเนื้อหาฟังก์ชัน พารามิเตอร์ comptime จะทำงานเหมือนค่าคงที่ จึงสามารถใช้ในขนาดอาร์เรย์และตำแหน่งอื่น ๆ ที่ต้องการค่าเวลาคอมไพล์ได้
fn buffer(comptime n: usize) [n]u8 {
return undefined;
}ตรวจสอบความเข้าใจอย่างรวดเร็ว
ฟังก์ชันประกาศพารามิเตอร์เป็น comptime n: usize ผู้เรียกต้องส่งค่าชนิดใด
สรุป
กำหนดพารามิเตอร์เป็น comptime เพื่อบังคับให้เป็นค่าเวลาคอมไพล์ จากนั้น Zig จะตรวจสอบค่าและปรับเฉพาะฟังก์ชันได้โดยไม่มีต้นทุนขณะทำงาน 🎯
เรียนรู้ Zig ด้วย AI tutor — ฟรี
เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป
- คอร์ส
- 30
- บทเรียน
- 120
คำถามที่พบบ่อย
บทเรียน “พารามิเตอร์และค่าของ comptime” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “พารามิเตอร์และค่าของ comptime” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Zig Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Zig Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “พารามิเตอร์และค่าของ comptime”
ส่งค่าที่มีอยู่ตั้งแต่เวลาคอมไพล์ คุณปฏิบัติ Zig Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Zig Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Zig Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “พารามิเตอร์และค่าของ comptime” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Zig Academy นี้ได้ไหม
ได้ บทเรียน Zig Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- เวลาคอมไพล์เทียบกับเวลาทำงาน
- พารามิเตอร์และค่าของ comptime
- ชนิดข้อมูลคือค่า comptime
- inline for และลูปที่คลี่ออก