เวลาคอมไพล์เทียบกับเวลาทำงาน
สิ่งที่ Zig ประเมินค่าได้ก่อนเริ่มทำงาน
เวลาคอมไพล์เทียบกับเวลาทำงาน เป็นบทเรียน Zig Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Zig Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Zig Academy มีบทเรียนทั้งหมด 4 บทเรียน
สองช่วงเวลาในโปรแกรมเดียว
โค้ด Zig อยู่ในสองโลก: สิ่งที่เกิดขึ้นขณะ คอมไพล์ และสิ่งที่เกิดขึ้นขณะโปรแกรมทำงาน การเรียนรู้การแบ่งช่วงนี้จะช่วยให้คุณใช้พลังของ Zig ได้เต็มที่ ⏱️
เวลาทำงานคือสิ่งที่คุ้นเคย
เวลาทำงานคือทุกสิ่งที่เกิดขึ้นเมื่อไบนารีที่สร้างเสร็จแล้วทำงาน เช่น ข้อมูลเข้าจากผู้ใช้ การอ่านไฟล์ และค่าที่ไม่อาจทราบล่วงหน้า
เวลาคอมไพล์เกิดขึ้นก่อน
เวลาคอมไพล์คืองานที่คอมไพเลอร์ของ Zig ทำก่อนที่ไบนารีจะมีอยู่จริง นิพจน์บางรายการจะถูกประเมินจนเสร็จสมบูรณ์ในช่วงนี้
ค่าคงที่มักถูกคำนวณล่วงหน้า
นิพจน์ง่าย ๆ ที่มีค่าซึ่งทราบอยู่แล้วสามารถคำนวณระหว่างการคอมไพล์ได้ Zig จะรวมผลลัพธ์ให้เป็น ค่าคงที่เพียงค่าเดียวในไบนารีสุดท้าย
const minutes = 60 * 24;comptime_int ไม่มีความกว้างตายตัว
ค่าจำนวนเต็มที่เขียนลอย ๆ จะเริ่มต้นเป็น comptime_int โดยมีความแม่นยำตามต้องการจนกว่าคุณจะกำหนดให้เป็นชนิดที่มีขนาด เช่น i32
const big = 1_000_000_000_000;คีย์เวิร์ด comptime
วาง comptime ไว้หน้านิพจน์เพื่อบังคับให้ประเมินระหว่างการคอมไพล์ หากไม่สามารถทำได้ คุณจะได้รับข้อผิดพลาด
comptime {
const x = 2 + 3;
}ค่าขณะทำงานยังคงอยู่ในเวลาทำงาน
ค่าที่อ่านจากข้อมูลเข้าเพิ่งจะทราบได้เมื่อโปรแกรมทำงาน คุณไม่สามารถขอให้คอมไพเลอร์ประเมินค่านั้นใน เวลาคอมไพล์ได้
comptime เรียกใช้ตรรกะจริงได้
เวลาคอมไพล์ไม่ได้มีแค่การคำนวณทางคณิตศาสตร์ Zig สามารถวนซ้ำและเรียกฟังก์ชันใน เวลาคอมไพล์ได้ ตราบใดที่ทราบข้อมูลเข้าทั้งหมดในตอนนั้น
const total = comptime sum(10);เหตุผลที่ย้ายงานไปเวลาคอมไพล์
การคำนวณสิ่งต่าง ๆ ระหว่างการคอมไพล์หมายถึงไม่มีต้นทุนใน เวลาทำงาน ผลลัพธ์จะถูกฝังไว้ในไบนารี ทำให้โปรแกรมไม่ต้องคำนวณซ้ำ
ภาษาเดียวสำหรับทั้งสองช่วง
ไวยากรณ์ Zig เดียวกันทำงานได้ทั้งสองช่วง ไม่มีภาษามาโครแยกต่างหาก โค้ดเวลาคอมไพล์ก็คือ Zig ปกติที่ทำงานเร็วขึ้น
ตรวจพบข้อผิดพลาดก่อนเวลาทำงาน
เนื่องจาก Zig ประเมินโค้ดที่ทราบค่าได้ตั้งแต่เนิ่น ๆ ความผิดพลาดจำนวนมากจึงปรากฏเป็น ข้อผิดพลาดขณะคอมไพล์ คุณแก้ไขได้ก่อนที่โปรแกรมจะเริ่มทำงาน
ตรวจสอบความเข้าใจอย่างรวดเร็ว
คุณเขียนค่าคงที่ที่เท่ากับ 7 คูณ 24 การคูณนี้เกิดขึ้นเมื่อใด
สรุป
Zig แบ่งงานออกเป็น เวลาคอมไพล์และเวลาทำงาน ค่าที่ทราบล่วงหน้าสามารถคำนวณได้ตั้งแต่เนิ่น ๆ โดยไม่เสียต้นทุน ส่วนค่าที่ไม่ทราบจะรอจนโปรแกรมทำงาน 🎯
คำถามที่พบบ่อย
บทเรียน “เวลาคอมไพล์เทียบกับเวลาทำงาน” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “เวลาคอมไพล์เทียบกับเวลาทำงาน” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Zig Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Zig Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “เวลาคอมไพล์เทียบกับเวลาทำงาน”
สิ่งที่ Zig ประเมินค่าได้ก่อนเริ่มทำงาน คุณปฏิบัติ Zig Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Zig Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Zig Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “เวลาคอมไพล์เทียบกับเวลาทำงาน” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Zig Academy นี้ได้ไหม
ได้ บทเรียน Zig Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- เวลาคอมไพล์เทียบกับเวลาทำงาน
- พารามิเตอร์และค่าของ comptime
- ชนิดข้อมูลคือค่า comptime
- inline for และลูปที่คลี่ออก