열거
11222 단어 swiftprogrammingtutorialbeginners
통사론:
enum SomeEnum {
//code
}
예시:
enum CompassPoints{
case north
case south
case east
case west
}
enum CompassPoints{
case north,south,east,west
}
메모:
Switch 문과 열거형 값 일치시키기
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")
}
// Prints "Watch out for penguins"
열거형 반복
일부 열거형의 경우 해당 열거형의 모든 경우를 수집하는 것이 유용합니다. 열거형 이름 뒤에 CaseIterable을 작성하여 활성화합니다. Swift는 모든 케이스의 컬렉션을 열거형의 allCases 속성으로 노출합니다.
enum Beverage: CaseIterable {
case coffee, tea, juice
}
let numberOfChoices = Beverage.allCases.count
print("\(numberOfChoices) beverages available")
// Prints "3 beverages available"
for beverage in Beverage.allCases {
print(beverage)
}
// coffee
// tea
// juice
위의 예에서 사용된 구문은 열거형을 CaseIterable 프로토콜을 준수하는 것으로 표시합니다.
관련 값
주어진 유형의 관련 값을 저장하기 위해 Swift 열거형을 정의할 수 있으며 필요한 경우 열거형의 각 경우에 대해 값 유형이 다를 수 있습니다.
enum Barcode {
case upc(Int, Int, Int, Int)
case qrCode(String)
}
var productBarcode = Barcode.upc(8, 85909, 51226, 3)
productBarcode = .qrCode("ABCDEFGHIJKLMNOP")
원시 값
연결된 값의 대안으로 열거형 케이스는 모두 동일한 유형인 기본값(원시 값이라고 함)으로 미리 채워질 수 있습니다.
enum ASCIIControlCharacter: Character {
case tab = "\t"
case lineFeed = "\n"
case carriageReturn = "\r"
}
메모:
암시적으로 할당된 원시 값
정수 또는 문자열 원시 값을 저장하는 열거로 작업할 때 각 경우에 원시 값을 명시적으로 할당할 필요가 없습니다. 그렇지 않으면 Swift가 자동으로 값을 할당합니다.
enum Planet: Int {
case mercury = 1, venus, earth, mars, jupiter, saturn, uranus, neptune
}
위의 예에서 Planet.mercury는 1의 명시적 원시 값을 갖고 Planet.venus는 2의 암시적 원시 값을 갖는 식입니다.
enum CompassPoint: String {
case north, south, east, west
}
위의 예에서 CompassPoint.south는 "south"등의 암시적 원시 값을 갖습니다.
rawValue 속성을 사용하여 열거형 케이스의 원시 값에 액세스합니다.
let earthsOrder = Planet.earth.rawValue
// earthsOrder is 3
let sunsetDirection = CompassPoint.west.rawValue
// sunsetDirection is "west"
원시 값에서 초기화
원시 값 유형으로 열거형을 정의하면 열거형은 원시 값 유형의 값(rawValue라는 매개변수로)을 취하고 열거형 케이스 또는 nil을 반환하는 이니셜라이저를 자동으로 수신합니다. 이 이니셜라이저를 사용하여 열거형의 새 인스턴스를 만들 수 있습니다.
let possiblePlanet = Planet(rawValue: 7)
// possiblePlanet is of type Planet? and equals Planet.uranus
재귀 열거
재귀 열거형은 열거형의 다른 인스턴스를 하나 이상의 열거형 사례에 대한 연결된 값으로 갖는 열거형입니다. 열거형 케이스가 재귀적임을 나타내기 위해 컴파일러에게 필요한 간접 참조 계층을 삽입하도록 지시합니다.
enum ArithmeticExpression {
case number(Int)
indirect case addition(ArithmeticExpression, ArithmeticExpression)
indirect case multiplication(ArithmeticExpression, ArithmeticExpression)
}
//You can also write indirect before the beginning of the enumeration to enable indirection for all of the enumeration’s cases that have an associated value:
indirect enum ArithmeticExpression {
case number(Int)
case addition(ArithmeticExpression, ArithmeticExpression)
case multiplication(ArithmeticExpression, ArithmeticExpression)
}
Reference
이 문제에 관하여(열거), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/ajithmadhan11/swift-enumeration-hda텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)