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 | 31 |
Tags
- 연산자
- Break
- 프로그래머스 암호 해독
- cocoapods 설치 오류
- 스페인어
- 주사위 게임1
- 프로그래머스 조건에 맞게 수열 변경하기 3
- 스파르타코딩캠프
- 문자열 붙여서 출력하기
- 객체지향
- 프로그래머스 문자열 붙여서 출력하기
- 프로그래머스 주사위 게임1
- Error installing cocoapods
- 프로그래머스
- Til
- 프로그래머스 문자열 정렬하기 (1)
- 프로그래머스 배열 만들기1
- 프로그래머스 n의 배수 고르기
- 배열 만들기1
- ruby설치
- n번째 원소까지
- 프로그래머스 최댓값 만들기(2)
- 스파르타 코딩클럽 내일배움캠프
- 조건에 맞게 수열 변경하기 3
- swift
- 문자열 정렬하기 (1)
- continue
- 프로그래머스 n번째 원소까지
- 프로그래머스 자동커밋
- array
Archives
- Today
- Total
dev._.note
[Swift] Enum(열거형) 본문
👏 Enum이란?
Enum은 Enumeration(열거형)의 줄임말로써 서로 연관된 값들의 집합을 정의할 수 있는 자료형.
Swift에서는 열거형이 일반적으로 String, Int 등의 원시값(Raw Value) 또는 연관 값(Associated Value)을 가질 수 있음.
이를 통해 코드의 가독성을 높이고 정확성을 유지하면서 간결한 코드를 작성할 수 있음.
👏 Enum을 사용하지 않는 경우
Enum을 사용하지 않으면, 상태를 변수로 선언하고 이를 조건문 등을 통해 비교하여 사용 할 수 있음.
예시)
let a = "A"
let b = "B"
let value = a
if value == a {
print("값은 A입니다.")
} else if value == b {
print("값은 B입니다.")
} else {
print("값을 알 수 없습니다.")
}
상태를 String으로 선언하고 조건문으로 비교하여 사용할 수 있음.
하지만 이렇게 사용하면 가독성이 떨어지는 등 문제가 생김.
👏 Enum을 사용하는 경우
Enum을 사용하면 상태를 Enum으로 정의하여 이를 변수로 선언하고 사용할 수 있음.
예시)
enum eValue {
case A
case B
}
let value: eValue = .A
switch value {
case .A:
print("값은 A입니다.")
case .B:
print("값은 B입니다.")
}
Eum을 사용하면 변수의 값이 상태가 되고 switch문으로 변수의 값에 따라 다른 동작을 수행할 수 있음.
가성성이 좋고 코드가 간결해지는 장점.
👏 Enum을 활용하는 방법
Enum에서는 rawValue, caselterable, 연관 값등의 기능을 사용할 수 있음.
1. rawValue(원시값)
Enum에서는 rawValue를 사용하여 Enum의 값을 다른 값으로 변환할 수 있음.
rawValue는 Enum에서 각 case의 값으로, 정수형, 문자열등을 사용할 수 있음.
enum eVal: Int {
case A = 0
case B = 1
}
let value = eVal(rawValue: 1)
switch value {
case .A:
print("값은 A입니다.")
case .B:
print("값은 B입니다.")
case nil:
print("값을 알 수 없습니다.")
}
enum color: String {
case red = "red"
case blue = "blue"
}
let redColor: color = .red
print(redColor.rawValue)
2. caselterable
Enum에서는 rawValue를 사용하여 Enum의 값을 다른 값으로 변환할 수 있음.
rawValue는 Enum에서 각 case의 값으로, 정수형, 문자열등을 사용할 수 있음.
enum Value: String, Caselterable {
case A = "A"
case B = "B"
}
for value int Value.allCases {
print(value.rawValue)
}
// "A"
// "B"
3. 연관값
Enum에서는 rawValue를 사용하여 Enum의 값을 다른 값으로 변환할 수 있음.
rawValue는 Enum에서 각 case의 값으로, 정수형, 문자열등을 사용할 수 있음.
enum State {
case A(value: Int)
case B(value: String)
}
let current = State.A(value: 10)
switch current {
case .A(let value):
print("현재상태는 A이며, 값은 \(value)입니다.")
case .B(let value):
print("현재상태는 B이며, 값은 \(value)입니다.")
}
4. switch 이용
Enum에서는 rawValue를 사용하여 Enum의 값을 다른 값으로 변환할 수 있음.
rawValue는 Enum에서 각 case의 값으로, 정수형, 문자열등을 사용할 수 있음.
enum State {
case A(value: Int)
case B(value: String)
case C
}
let current = State.A(value: 10)
switch current {
case .A(let value):
print("현재상태는 A이며, 값은 \(value)입니다.")
case .B(let value):
print("현재상태는 B이며, 값은 \(value)입니다.")
case .A(let value):
print("현재상태는 C입니다.")
}
for state int State.allCases {
print(state)
}
for case let .A(value) int State.allCases {
print("A 상태의 값은 \(value)입니다.")
}
'Dev > SWIFT' 카테고리의 다른 글
[Swift] Dictionary (사전형) (0) | 2023.11.12 |
---|---|
[Swift] Set (집합) (0) | 2023.11.10 |
[Swift] for문과 while문 (0) | 2023.11.06 |
[Swift] 변수와 상수 (0) | 2023.11.02 |
[Swift] if문과 switch문 기초문법 (1) | 2023.10.30 |