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

ประกาศโครงสร้างข้อมูลและฟิลด์

รวมข้อมูลที่เกี่ยวข้องไว้ในชนิดข้อมูลเดียว

ประกาศโครงสร้างข้อมูลและฟิลด์ เป็นบทเรียน 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

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

  1. ประกาศโครงสร้างข้อมูลและฟิลด์
  2. เมธอดและพารามิเตอร์ self
  3. ค่าเริ่มต้นของฟิลด์
  4. โครงสร้างข้อมูลนิรนามและทูเพิล
← กลับไปที่ Zig Academy