使用enum關鍵字來建立列舉。
enum Enumeration {
}
利用列舉來表示東南西北四個方向。
enum CompassPoint {
	case north
	case south
	case east
	case west
}
多個值可以利用逗號隔開讓他們在同一行上。
enum Planet {
	case mercury, venus, earth, mars, jupiter, saturn, uranus, neptune
}
可以宣告一個變數來推斷類型。
var directionToHead = CompassPoint.west
當類型以之時,再次賦值可以省略列舉的類型名,提升整體程式可讀性。
directionToHead = .east
Switch匹配enum
directionToHead = .south
switch directionToHead {
	case .north:
		print("Lots of planets have a north")
	case .south:
		print("Watch out for penguins")
	case .east:
		print("Where the sun rises")
	case .west:
		print("Where the skies are blue")
}
當不需要每個列舉成員時,可以添加一個default分支來涵蓋掉所有未明確處理的列舉成員。
let somePlanet = Planet.earth
switch somePlanet {
	case .earth:
		print("Mostly harmless")
	default:
		print("Not a safe place for humans")
}
遍歷列舉
enum Beverage: CaseIterable {
	case coffee, tea, juice
}
let numberOfChoices = Beverage.allCases.count
print("(numberOfChoices) beverages available")
利用for in 來進行遍歷
for beverage in Beverage.allCases {
	print(beverage)
}
相關值
enum Shape {
	case circle
	case rect
	case triangele
}
進行了形狀的定義,但假設需要不同的參數時,可以進行不同的列舉宣告。
enum Shape {
	case circle(center: (Double,Double), radius: Double)
	case rect(center: (Double,Double), width: Double, height: Double)
	case triangele(point1: (Double,Double), point2: (Double,Double), point3: (Double,Double))
}
在建立相關值列舉時,開發者需要提供參數列表所需要的參數。
var circle = Shape.circle(center: (0,0), radius: 3)
// 建立圓形列舉
var rect = Shape.rect(center: (1,1), width: 10, height: 15)
// 建立矩形列舉
var triangle = Shape.triangele(point1: (2,2), point2: (3,3), point3: (2,5))
// 建立三角形列舉
在switch case語句中,可以透過參數捕獲的方式來獲取列舉的相關值。
func shapeFunc(param: Shape) {
	switch param {
		case let .circle(center, radius):
			print("(center),(radius)")
		case let .rect(center, width, height):
			print("(center),(width),(height)")
		case let .triangele(point1, point2, point3):
			print("(point1),(point2),(point3)")
	}
}
shapeFunc(param: circle)
shapeFunc(param: rect)
shapeFunc(param: triangle)
接下來,是結構 Struct 的介紹