0Pricing
Zig Academy · บทเรียน

เวลาคอมไพล์เทียบกับเวลาทำงาน

สิ่งที่ 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

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

  1. เวลาคอมไพล์เทียบกับเวลาทำงาน
  2. พารามิเตอร์และค่าของ comptime
  3. ชนิดข้อมูลคือค่า comptime
  4. inline for และลูปที่คลี่ออก
← กลับไปที่ Zig Academy