ประกาศโครงสร้างข้อมูลและฟิลด์
รวมข้อมูลที่เกี่ยวข้องไว้ในชนิดข้อมูลเดียว
ประกาศโครงสร้างข้อมูลและฟิลด์ เป็นบทเรียน Zig Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Zig Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Zig Academy มีบทเรียนทั้งหมด 4 บทเรียน
จัดกลุ่มข้อมูลที่เกี่ยวข้องกัน
ตัวแปรที่กระจัดกระจายจะจัดการได้ยุ่งยากอย่างรวดเร็ว struct ช่วยรวมค่าที่เกี่ยวข้องกันไว้ในชนิดที่มีชื่อเดียว ซึ่งคุณส่งต่อไปพร้อมกันได้
struct เป็นนิพจน์
ใน Zig คุณสร้าง struct ด้วยคีย์เวิร์ด struct และบอดี โดยทั่วไปจะผูกไว้กับ const เพื่อมอบชื่อให้ชนิดนั้น
const Point = struct {};เพิ่มฟิลด์
ภายในวงเล็บปีกกา ให้ระบุ ฟิลด์ แต่ละรายการพร้อมชื่อและชนิด ฟิลด์เหล่านี้อธิบายข้อมูลที่ทุกค่าของ struct เก็บไว้
const Point = struct {
x: i32,
y: i32,
};ฟิลด์ลงท้ายด้วยจุลภาค
การประกาศฟิลด์ทุกตัวต้องลงท้ายด้วย จุลภาค แม้แต่ตัวสุดท้าย Zig เคร่งครัดในเรื่องนี้ จึงทำให้เครื่องมือจัดรูปแบบเขียนได้สอดคล้องกัน
const Color = struct {
r: u8,
g: u8,
b: u8,
};สร้างอินสแตนซ์
หากต้องการสร้างค่า ให้เขียนชื่อชนิดและตัวเริ่มต้นค่า .{} พร้อมกำหนดค่าแต่ละฟิลด์ตามชื่อ
const origin = Point{ .x = 0, .y = 0 };ใช้จุดเพื่ออ่านฟิลด์
เข้าถึงฟิลด์ด้วย จุด ที่อยู่หลังค่า ดังนั้น origin.x จะอ่านฟิลด์ x ของจุดนั้น
const px = origin.x;การเปลี่ยนค่าต้องใช้ var
หากต้องการเปลี่ยนฟิลด์ อินสแตนซ์นั้นต้องเป็น var struct ที่เป็น const รวมถึงฟิลด์ทั้งหมดของมัน จะไม่สามารถเปลี่ยนแปลงได้
var p = Point{ .x = 1, .y = 2 };
p.x = 5;ฟิลด์เป็นชนิดใดก็ได้
ฟิลด์สามารถเก็บอะไรก็ได้ ทั้ง bool, slice หรือแม้แต่ struct อีกตัวหนึ่ง คุณสามารถซ้อน struct ได้อย่างอิสระเพื่อจำลองโครงสร้างที่ซับซ้อนขึ้น
const Line = struct {
start: Point,
end: Point,
};ลำดับของฟิลด์
ใน struct ทั่วไป Zig อาจ สลับลำดับ ฟิลด์ในหน่วยความจำเพื่อจัดเก็บให้กระชับ คุณเรียกฟิลด์ด้วยชื่อ ดังนั้นการจัดวางจึงไม่ส่งผลต่อโค้ด
Struct เป็นชนิดค่า
การกำหนดหรือส่ง struct จะ คัดลอก struct นั้นตามค่า ต้นฉบับจะไม่เปลี่ยนแปลง เว้นแต่คุณจะใช้พอยน์เตอร์โดยตั้งใจ
var a = Point{ .x = 1, .y = 1 };
var b = a; // b is a copyชนิด ไม่ใช่ตัวแปร
คำจำกัดความของ struct อธิบาย ชนิด เช่นเดียวกับพิมพ์เขียว ส่วนอินสแตนซ์คือค่าจริงที่คุณสร้างจากพิมพ์เขียวนั้น
ตรวจสอบอย่างรวดเร็ว
คุณสร้างค่าจากชนิด struct ได้อย่างไร
สรุป
คุณได้รู้จัก structs: คีย์เวิร์ด struct ใช้จัดกลุ่มฟิลด์ที่มีชื่อให้เป็นชนิด และ Type{ .field = value } ใช้สร้างอินสแตนซ์ 🧱
คำถามที่พบบ่อย
บทเรียน “ประกาศโครงสร้างข้อมูลและฟิลด์” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “ประกาศโครงสร้างข้อมูลและฟิลด์” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Zig Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Zig Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “ประกาศโครงสร้างข้อมูลและฟิลด์”
รวมข้อมูลที่เกี่ยวข้องไว้ในชนิดข้อมูลเดียว คุณปฏิบัติ Zig Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Zig Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Zig Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “ประกาศโครงสร้างข้อมูลและฟิลด์” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Zig Academy นี้ได้ไหม
ได้ บทเรียน Zig Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- ประกาศโครงสร้างข้อมูลและฟิลด์
- เมธอดและพารามิเตอร์ self
- ค่าเริ่มต้นของฟิลด์
- โครงสร้างข้อมูลนิรนามและทูเพิล