和結構類似,列舉 (enum) 也是一種複合型別,列舉中的資料為程式設計者所指定的有限的數個可能性。列舉是相當實用的概念,Rust 的標準函式庫中也有許多場合使用到列舉。
建立列舉
Rust 的列舉分為兩種,一種是無資料的列舉,一種是有資料的列舉。以下實例建立無資料的列舉:
在我們這個例子中,雖然也可以用常數 (constant) 來達成類似的效果,但用列舉較佳,因為建立列舉時,也建立了新的型別,Rust 編譯器會利用列舉的資訊幫我們檢查程式碼。
Rust 的列舉也可以帶資料,如以下實例:
在 match 中使用列舉
在 match 中使用到列舉時,同樣需窮舉所有的可能性。如下:
結合資料和行為
如同結構,列舉也可以將資料和行為結合,利用物件導向的機制建立自己的型別系統。我們將於後續章節介紹相關內容。