Enumerations With Data
ในองค์ประกอบ enum
ยังอนุญาตให้สามารถมีประเภทข้อมูล ได้อย่างน้อยหนึ่งชนิดอีกด้วย ซึ่งจะมีพฤติกรรมคล้ายกับ union ในภาษาซี
เมื่อใช้ match
มาจับคู่ของใน enum
คุณสามารถผูกชื่อตัวแปรให้แต่ละค่านั้นได้เลย
รายละเอียดหน่วยความจำของ enum
:
- ค่าข้อมูลของ enum จะมีขนาดในหน่วยความจำ เท่ากับขนาดขององค์ประกอบสมาชิกตัวที่ใหญ่ที่สุด นั่นทำให้ไม่ว่าจะเป็นค่าใดก็จะสามารถวางลงบนพื้นที่ในหน่วยความจำได้แน่นอน
- นอกจากนี้แล้ว ประเภทข้อมูลของสมาชิก (ถ้ามี) แต่ละตัวจะมีเลขประจำตัวแทนแต่ละแท็กด้วย
รายละเอียดอื่นๆ:
enum
ใน Rust ก็คือสิ่งที่หลายๆคนรู้จักกันในชื่อ tagged union
- เวลาที่ใครๆพูดกันว่า Rust มี algebraic types เขากำลังหมายถึงการเอา type หลายๆตัวมารวมกันสร้างเป็น type ใหม่นั่นเอง