🍃 출처 : 앨런 swift 문법 마스터 스쿨
Basic Type: Int, Double, String, Bool...
: 기본 타입
Custon Type: Enum, Class, Struct...
: 개발자가 마음대로 만들어서 쓸 수 있는 사용자 정의 타입
1) 기본 개념
연관된 상수(케이스)들을 하나의 이름으로 묶은 자료형enum Weekday { case monday case tuesday case wednesday case thursday case friday case saturday case sunday }
- 열거형은 타입이다.
- gkdtkd switch문으로 분기처리 가능
var today: Weekday = Weekday.monday today = .tuesday
2) 원시값 (RawValue)
: 매칭되는 기본값 (정수/문자열)을 정해, 열거형을 좀 더 쉽게 활용 가능enum Alignment: Int { case left //=0 case center //=1 case right //=2 }
- 자동으로 순서 매겨짐, 따로 설정도 가능
<활용>
: 숫자 또는 문자열과 매칭시켜 자유롭게 활동 가능// 가위 바위 보 열거형 만들기 enum RpsGame: Int { case rock case paper case scissors } // 실제 앱을 만들때는 RpsGame(rawValue: 0) RpsGame(rawValue: 1) RpsGame(rawValue: 2)
3) 연관값 (Associate Values)
: 구체적인 추가 정보를 저장하기 위해 사용
- 각 케이스 별로 상이한 특징이 있고, 그것을 저장하고 활용한다
- 개별 케이스마다 저장할 형식을 따로 정의한다
- 하나의 케이스에 서로 다른 연관값을 저장할 수 있다
enum Computer { case cpu(core: Int, ghz: Double) case ram(Int, String) case hardDisk(gb: Int) } var chip = Computer.cpu(core: 8, ghz: 3.1)
- 이렇게 카테고리의 개념