Zig Academy · บทเรียน

นำเข้าไฟล์ด้วย @import

นำไฟล์ซอร์สอื่นเข้ามาในขอบเขต

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

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

นำเข้าไฟล์อื่น

เมื่อโค้ดขยายใหญ่ขึ้น คุณจะแยกโค้ดออกเป็นหลายไฟล์ คำสั่งในตัว @import จะดึงไฟล์ซอร์ส Zig อีกไฟล์เข้ามาในไฟล์ปัจจุบัน 📦

const math = @import("math.zig");

ส่งคืนค่า

@import เป็นนิพจน์ที่ส่งคืนค่า คุณเก็บค่านั้นไว้ใน const แล้วเข้าถึงสมาชิกด้วยจุดได้เช่นเดียวกับโครงสร้างข้อมูล

const math = @import("math.zig");
const r = math.add(2, 3);

ไฟล์คือโครงสร้างข้อมูล

ไฟล์ Zig ทุกไฟล์แท้จริงแล้วคือ โครงสร้างข้อมูล การประกาศระดับบนสุดจะกลายเป็นฟิลด์และฟังก์ชันที่คุณเข้าถึงได้หลังนำเข้าไฟล์

มีเพียง pub ที่ข้ามขอบเขตได้

การประกาศจะเข้าถึงได้จากไฟล์อื่นก็ต่อเมื่อมีเครื่องหมาย pub หากไม่มี pub การประกาศนั้นจะเป็นส่วนตัวและใช้ได้เฉพาะในไฟล์ของตนเอง

pub fn add(a: i32, b: i32) i32 {
    return a + b;
}

เส้นทางเป็นแบบสัมพัทธ์

เส้นทางไฟล์ภายใน @import เป็นแบบสัมพัทธ์กับไฟล์ที่นำเข้า ดังนั้น "util/text.zig" จะค้นหาในโฟลเดอร์ util ที่อยู่ข้างไฟล์ปัจจุบัน

const text = @import("util/text.zig");

นำเข้าไลบรารีมาตรฐาน

การนำเข้าที่ใช้บ่อยที่สุดคือ std ซึ่งเป็นชื่อโมดูลพิเศษ ไม่ใช่เส้นทางไฟล์ และให้คุณเข้าถึงไลบรารีมาตรฐานทั้งหมด

const std = @import("std");

โมดูล builtin

ชื่อพิเศษอีกชื่อหนึ่งคือ builtin ซึ่งเปิดเผยข้อมูลขณะคอมไพล์ เช่น ระบบปฏิบัติการเป้าหมายและโหมดการปรับประสิทธิภาพปัจจุบัน

const builtin = @import("builtin");

การนำเข้าทำงานขณะคอมไพล์

@import จะถูกแก้ไขทั้งหมดในเวลาคอมไพล์ เส้นทางต้องเป็นลิเทอรัลสตริงที่ทราบค่าในเวลานั้น และต้องไม่ใช่ค่าที่คำนวณขณะเรียกใช้

แคชไว้ ไม่ทำซ้ำ

แม้นำเข้าไฟล์เดียวกันจากสิบตำแหน่ง Zig ก็จะโหลดไฟล์นั้นครั้งเดียว การนำเข้าทุกครั้งด้วยเส้นทางเดียวกันจะแชร์ค่าโครงสร้างข้อมูลเดียวกันอย่างแท้จริง

เปลี่ยนชื่อให้ชัดเจน

เนื่องจากผลลัพธ์เป็นเพียง const คุณจึงเปลี่ยนชื่อได้อย่างอิสระ เลือกชื่อแทนที่สั้นและชัดเจน ซึ่งอ่านได้ดีในทุกจุดที่เรียกใช้

const fs = @import("std").fs;

เข้าถึงโดยไม่ต้องเก็บไว้

คุณสามารถต่อการเข้าถึงจากการนำเข้าได้โดยตรงเพื่อใช้งานครั้งเดียว โดยไม่ต้องมี const คั่นกลางเมื่อคุณต้องการเพียงรายการเดียว

const out = @import("std").io.getStdOut();

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

ทบทวนว่าอะไรทำให้รายการระดับบนสุดใช้งานได้จากไฟล์อื่น

สรุปทบทวน

คุณได้เรียนรู้ว่า @import โหลดไฟล์เป็นโครงสร้างข้อมูลขณะคอมไพล์ std และ builtin เป็นชื่อพิเศษ และมีเพียงรายการที่เป็น pub เท่านั้นที่ข้ามไปยังไฟล์อื่นได้ 🎯

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

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

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

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

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

บทเรียน “นำเข้าไฟล์ด้วย @import” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “นำเข้าไฟล์ด้วย @import”

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

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

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

บทเรียน “นำเข้าไฟล์ด้วย @import” ใช้เวลานานแค่ไหน

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

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

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

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

  1. นำเข้าไฟล์ด้วย @import
  2. การจัดโครงสร้างโครงการหลายไฟล์
  3. build.zig.zon และตัวจัดการแพ็กเกจ
  4. การเพิ่มโมดูลจากผู้พัฒนาภายนอก
← กลับไปที่ Zig Academy