本教程屬於 Swift 系列教程

列舉是一種將不同選項分組在一個共同名稱下的方式。

示例:

enum Animal {
 case dog
 case cat
 case mouse
 case horse
}

這個 Animal 列舉現在是一個類型

這種類型的值只能是列出的其中一個選項。

如果你定義一個 Animal 類型的變數:

var animal: Animal

你可以稍後使用這種語法決定要給它賦予哪個值:

var animal: Animal
animal = .dog

我們可以在 switch 控制結構中使用列舉:

enum Animal {
 case dog
 case cat
 case mouse
 case horse
}

let animal = Animal.dog

switch animal {
case .dog: print("dog")
case .cat: print("cat")
default: print("another animal")
}

列舉的值可以是字符串、字符或數字。

您還可以在一個線上定義一個列舉:

enum Animal {
 case dog, cat, mouse, horse
}

您還可以在列舉中添加類型聲明,並為每個選項分配該類型的值:

enum Animal: Int {
 case dog = 1
 case cat = 2
 case mouse = 3
 case horse = 4
}

一旦你有一個變量,你可以使用其 rawValue 屬性來獲取這個值:

enum Animal: Int {
 case dog = 1
 case cat = 2
 case mouse = 3
 case horse = 4
}

var animal: Animal
animal = .dog

animal.rawValue //1

列舉是一個值類型。這意味著它們在傳遞給函數或從函數返回時被複製。當我們將一個指向列舉的變量賦值給另一個變量時也是如此。