자바스크립트에서 오타 등을 방지하기 위해 Constant.js 파일을 만들어 불러와 사용했던 것을 Swift에는 열거형 문법으로 정의되어있다고 생각하면 됨
열거형(Enumerations)
- 관련 있는 상수들을 하나의 이름으로 묶는 자료형
- 코드의 가독성과 안정성이 높아짐
- 주로 switch문으로 분기처리하여 사용
enum Fruit { // 타입이름은 대문자를 사용
case apple // 케이스이름은 소문자를 사용
case banana
case grape
}
var myFavoriteFruit: Fruit = Fruit.apple
// 위처럼 타입을 명시해 준 경우 아래와 같이 작성 가능
myFavoriteFruit = .grape
열거형의 원시값
enum Fruit: Int {
case apple // 0
case banana // 1
case grape // 2
}
// 타입을 String으로 지정하면 케이스에 해당하는 rawValue는 케이스 이름으로 자동 저장됨
var myFavoriteFruit = Fruit(rawValue: 0)
var apple = Fruit.apple.rawValue // 0
- Int나 String 2가지 중 1가지를 사용
- 열거형에 원시값 타입을 칭하는 것을 의미
- 원시값을 지정하면 자동으로 값이 저장됨
열거형의 연관값
- 구체적인 추가정보를 저장하기 위해 사용함 (각 케이스별로 상이한 특징이 있고, 그것을 저장/활용할 필요가 있을 때 사용함)
- 각각 케이스마다 저장할 형식을 지정할 수 있음 (자료형에 제한없고, 튜플 형태)
열거형 추가정보
- 단, 열거형의 원시값과 연관값은 배타적인 관계로 동시에 사용하는 것은 불가능
- 열거형 case 패턴으로 switch문이 아닌 조건문/반복문에서도 특정 case만을 다루기 위해 case를 사용하는 패턴 존재
(if - case / for - case) - 표현식이 옵셔널 타입인 경우 편의적 기능을 제공하는 옵셔널 패턴 존재
- switch default 앞에 @unknown 키워드를 입력하면 case에 모든 경우를 다루는지 에러를 표시해줌
728x90
'FRONT-END > iOS' 카테고리의 다른 글
import UIKit이 필요한 이유 (0) | 2023.07.12 |
---|---|
Xcode 프로젝트 만들고 단순 텍스트 변경 앱 만들어보기! (0) | 2023.07.12 |
Javascript와 비교하며 Swift 공부하기 - Set편 (0) | 2023.07.08 |
자바스크립트와 비교하며 Swift 공부하기 - Dictionary편 (0) | 2023.07.08 |
자바스크립트와 비교하며 Swift 공부하기 - 컬렉션, Array편 (0) | 2023.07.08 |
댓글