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

เมธอดของอีนัมและจำนวนเต็มตัวแทน

เพิ่มพฤติกรรมและควบคุมรูปแบบการแทนค่า

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

Enum สามารถมีพฤติกรรมได้

Enum เป็นชนิดข้อมูลจริง จึงสามารถมี เมธอดได้ คุณประกาศฟังก์ชันภายในเนื้อหาของ enum ถัดจากชื่อค่าต่าง ๆ ได้เลย

เมธอดบน Enum

เขียนฟังก์ชันภายใน enum และรับ selfเป็นพารามิเตอร์ตัวแรก ฟังก์ชันนี้ทำงานเหมือนเมธอดบนโครงสร้าง

const Color = enum { red, green, fn isRed(self: Color) bool { return self == .red; } };

การเรียกใช้เมธอดของ Enum

คุณเรียกใช้เมธอดด้วยรูปแบบจุดบนค่า ค่านั้นจะกลายเป็น self ทำให้เมธอดรู้ว่าถูกเรียกใช้กับรูปแบบใด

const ok = c.isRed();

Enum ทุกตัวมีจำนวนเต็มรองรับ

ภายในนั้น ค่า enum แต่ละค่าจะจับคู่กับจำนวนเต็ม Zig จะเลือกชนิดจำนวนเต็ม ที่ใช้รองรับซึ่งมีขนาดเล็กและเก็บค่าทั้งหมดของคุณได้

การกำหนดหมายเลขเริ่มจากศูนย์โดยปริยาย

โดยปริยาย ค่าแรกคือ 0 และค่าแต่ละค่าถัดไปจะเพิ่มขึ้นทีละหนึ่ง ดังนั้น red คือ 0, green คือ 1 และค่าต่อ ๆ ไปจะเป็นไปตาม ลำดับ

const Color = enum { red, green, blue }; // 0, 1, 2

การเลือกชนิดที่ใช้รองรับ

คุณสามารถระบุจำนวนเต็มที่ใช้รองรับในวงเล็บได้ เช่น enum(u8) ซึ่งจะกำหนด ความกว้างที่แน่นอน และมีผลต่อการจัดวางข้อมูลกับการทำงานร่วมกับระบบอื่น

const Code = enum(u8) { a, b, c };

การกำหนดค่าอย่างชัดเจน

กำหนดตัวเลขเฉพาะให้กับค่าหนึ่งด้วย = วิธีนี้มีประโยชน์เมื่อจำนวนเต็มต้องตรงกับโพรโทคอลหรือ รีจิสเตอร์ของฮาร์ดแวร์

const Status = enum(u8) { ok = 0, busy = 1, err = 255 };

Enum เป็นจำนวนเต็ม

แปลงค่า enum เป็นตัวเลขด้วย @intFromEnum ซึ่งจะให้จำนวนเต็มพื้นฐานสำหรับส่งหรือจัดเก็บ

const n = @intFromEnum(Status.err); // 255

จำนวนเต็มเป็น Enum

แปลงกลับในทิศทางตรงกันข้ามด้วย @enumFromInt เพื่อแปลงตัวเลขกลับเป็นค่า enum ของชนิดที่คุณคาดไว้

const s: Status = @enumFromInt(1);

แปลงอย่างระมัดระวัง

@enumFromInt ถือว่าตัวเลขนั้นเป็นรูปแบบที่ถูกต้อง ในการสร้างแบบปลอดภัยจะตรวจพบค่าที่ไม่ถูกต้อง ส่วนกรณีอื่นคุณต้องเป็นผู้ ตรวจสอบความถูกต้องเอง

เมธอดและแท็กทำงานร่วมกัน

รวมแนวคิดทั้งสองเข้าด้วยกัน: เลือกชนิดที่ใช้รองรับเพื่อจัดวางข้อมูล กำหนดค่าให้ตรงกับโพรโทคอล และเพิ่ม เมธอดเพื่อให้ enum ทำงานได้ในตัวเอง

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

คุณมีค่า enum ของ Status และต้องการจำนวนเต็มพื้นฐาน ควรใช้บิลท์อินใด

สรุป

คุณเพิ่ม เมธอดให้ enum ด้วย self เลือกจำนวนเต็มที่ใช้รองรับ เช่น enum(u8) กำหนดค่าอย่างชัดเจน และแปลงได้ทั้งสองทางด้วย @intFromEnum กับ @enumFromInt 🔢

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

บทเรียน “เมธอดของอีนัมและจำนวนเต็มตัวแทน” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “เมธอดของอีนัมและจำนวนเต็มตัวแทน”

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

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

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

บทเรียน “เมธอดของอีนัมและจำนวนเต็มตัวแทน” ใช้เวลานานแค่ไหน

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

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

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

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

  1. อีนัมสำหรับชุดค่าที่กำหนดตายตัว
  2. ยูเนียนที่เก็บหนึ่งชนิดจากหลายชนิด
  3. ยูเนียนติดป้ายกำกับและ switch
  4. เมธอดของอีนัมและจำนวนเต็มตัวแทน
← กลับไปที่ Zig Academy