เมธอดของอีนัมและจำนวนเต็มตัวแทน
เพิ่มพฤติกรรมและควบคุมรูปแบบการแทนค่า
เมธอดของอีนัมและจำนวนเต็มตัวแทน เป็นบทเรียน 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- อีนัมสำหรับชุดค่าที่กำหนดตายตัว
- ยูเนียนที่เก็บหนึ่งชนิดจากหลายชนิด
- ยูเนียนติดป้ายกำกับและ switch
- เมธอดของอีนัมและจำนวนเต็มตัวแทน