本篇內容主要講解“如何使用swift枚舉定義”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“如何使用swift枚舉定義”吧!
//枚舉定義
enum CompassPoint {
case north
case south
case east
case west
}
//常配合switch case使用
let directionToHead = CompassPoint.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")
}
/*
Watch out for penguins
*///枚舉遍歷
enum Planet: CaseIterable {
case mercury, venus, earth, mars, jupiter, saturn, uranus, neptune
}
for planet in Planet.allCases {
print(planet)
}
/*
mercury
venus
earth
mars
jupiter
saturn
uranus
neptune
*///關聯值
enum Barcode {
case upc(Int, Int, Int, Int)
case qrCode(String)
}
func showBarcode(_ barcode: Barcode) {
switch barcode {
case .upc(let numberSystem, let manufacturer, let product, let check):
print("UPC:\(numberSystem), \(manufacturer), \(product), \(check)")
case .qrCode(let productCode):
print("QR Code: \(productCode)")
}
}
var productBarcode = Barcode.upc(1, 1, 1, 1)
showBarcode(productBarcode)
//UPC:1, 1, 1, 1
productBarcode = Barcode.qrCode("hello")
showBarcode(productBarcode)
//QR Code: hello//原始值
enum ASCIIControlCharacter: Character {
case tab = "\t"
case lineFeed = "\n"
case carriageReturn = "\r"
}//從原始值初始化
enum RoleStatus: Int,CaseIterable {
case run
case jump
case walk
case idle
}
for i in 0...RoleStatus.allCases.count {
print(RoleStatus(rawValue: i))
}
/*
Optional(__lldb_expr_8.RoleStatus.run)
Optional(__lldb_expr_8.RoleStatus.jump)
Optional(__lldb_expr_8.RoleStatus.walk)
Optional(__lldb_expr_8.RoleStatus.idle)
nil
*///遞歸枚舉 (5+4)*2
indirect enum ArithmeticExpression {
case number(Int)
case addition(ArithmeticExpression, ArithmeticExpression)
case multiplication(ArithmeticExpression, ArithmeticExpression)
}
let five = ArithmeticExpression.number(5)
let four = ArithmeticExpression.number(4)
let sum = ArithmeticExpression.addition(five, four)
let product = ArithmeticExpression.multiplication(sum, ArithmeticExpression.number(2))
func evaluate(_ expression: ArithmeticExpression) -> Int {
switch expression {
case let .number(value):
return value
case let .addition(left, right):
return evaluate(left) + evaluate(right)
case let .multiplication(left, right):
return evaluate(left) * evaluate(right)
}
}
print(evaluate(product))
//18到此,相信大家對“如何使用swift枚舉定義”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。