Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- CarouselCollectionview
- CoreData
- coremotion
- tableview section별 다른 cell적용
- til
- Array vs Linked List
- NavigationSearchBar
- 자료구조
- UserDefaults
- 강한 참조 순환
- 테이블뷰 나누기
- @escaping
- TableView
- 프로그래머스
- Input Output
- ReferceCycle
- firebase
- 롤케이크 자르기
- UIKit
- Carousel CollectionView
- wil
- retain cycle
- 면접을 위한 CS 전공 지식 노트 Tree
- SWIFT
- Value Type Reference Type
- 면접을 위한 CS전공 지식 노트
- class struct
- Reference Cycle
- TableView Section
- 양궁대회
Archives
- Today
- Total
개발하는 동글 :]
[TIL],[Swift],[Enum],[열거형] 본문
Enum(열거형)이란?
- 관련된 값으로 이루어진 그룹을 공통의 type(형)을 선언해 type-safety를 보장하는 방법으로 코드를 다룰 수 있게 해준다.
- C나 Objective-C가 Integer(정수형)값들로 열거형을 구성한 것에 반해 Swift에서는 case값이 string, character, integer, floting 값들을 사용할 수 있다.
- 열거형은 1급 타입(first-class types)*이어서 계산된 프로퍼티(computed properties)를 제공하거나 초기화를 지정하거나, 초기 선언을 확장해 사용할 수 있다.
열거형 문법 (Enumeration Syntax)
다음은 네 가지 방향을 갖는 CompassPoint 열거형 선언의 예시
case를 콤마로 구분해서 한줄에 적을 수 있다.
enum CompassPoint {
case north
case south
case east
case west
}
enum CompassPoint {
case north, south, east, west
}
각 열거형 정의는 완전 새로운 형을 정의한다. Swift의 다른 형과 마찬가지로 형의 이름은 대문자로 시작해야 한다.
var directionToHead = CompassPoint.west
directionToHead의 형은 초기화 될 때 타입추론이 돼서 CompassPoint형을 갖게된다.
directionToHead의 형이 CompassPoint로 한번 정의되면 다음에 값을 할당할 때 축약형 문법을 사용할 수 있다.
directionToHead = .east
Raw 값 (Raw Values)
C와 Objective-C 같이 case에 raw 값을 지정할 수 있다.
enum ASCIIControlCharacter: Character {
case tab = "\t"
case lineFeed = "\n"
case carriageReturn = "\r"
}
위 예제에서는 Character형의 raw값으로 정의했지만, String, Character, Integer,Float등의 형을 사용할 수도 있다. 단, 각 raw값은 열거형 선언에서 유일한 값으로 중복되어서는 안된다.
암시적으로 할당된 Raw 값 (Implicitly Assigned Raw Values)
열거형을 다루면서 raw값으로 Integer나 String 값을 사용할 수 있는데, 각 case별로 명시적으로 raw값을 할당할 필요는 없다. 만약 raw값을 할당하지 않으면 Swift에서 자동으로 값을 할당해 준다.
enum Planet: Int {
case mercury = 1, venus, earth, mars, jupiter, saturn, uranus, neptune
}
공부가 필요한 키워드 *
- 1급 타입(first-class types) :