列舉與資料
enum
元素可以有一個或多個資料型別,這使得它們就像 C 語言裡的 union 一樣。
當一個 enum
被 match
匹配到時,你可以將一個變量名綁定到每一個資料數值。
enum
的記憶體詳細說明:
- 一個列舉資料數值會擁有一塊記憶體大小,而該大小等同於最大的元素。這允許所有可能的數值都可以放進同樣的記憶體空間。
- 除了元素的資料型別 (如果有的話),每一個元素同時都還擁有一個數值用來表示他是哪個標籤。
其他細節:
- Rust 的
enum
也被稱作標記聯合 (tagged union)。
- 型別組合在一起產生新的型別,即是人們所說 Rust 擁有代數型別 (algebraic types)。