열거형
열거형
- 같은 주제로 연관된 데이터들을멤버로 구성하여 나타내는 자료형
- 공통된 주제에 대해서 정해놓은 입력 값만 선택해서 받고 싶을 때 사용 하는 것
정의
원시값(Raw Value) X
enum Position {
case warrior
case sorceress
case healer
}
let player: Position = .warrior
원시값 (Raw Value) O
enum Position: Int {
// 아무 값이 없으면 자동으로 첫 번째 부터 0으로 시작
// 이후 정수값 1씩 더함
case warrior //0
case sorceress //1
case healer //2
//------------------------
// 값을 지정했을 때
case warrior //0
case sorceress = 4
case healer //5
}
연관값 (Associated Values)
enum Monster: String {
case goblin = "hp: 100, atk: 10"
case boss = "hp: 10000, atk:100"
}
// case들이 같은 Raw Value를 가지는 단점이 존재 이때 연관 값을 사용
//-------------------
// 연관값 사용
// 튜플을 활용하여 연관 값을 받음
enum Monster {
case goblin(hp: Int, atk: Int)
case boss(hp: Int, atk: Int)
}
연관값 열거형 생성
let monster: Monster = .goblin(hp: 100, atk: 10)
//열거형 활용 switch 매칭
switch monster {
case .goblin(hp: 20, atk: 10):
print("Lv1 고블린")
case .goblin(hp: 100, _):
print("고기방패")
case .goblin(hp: 100, atk: 10):
print("lv5 고블린")
case .boss(let hp, let atk):
print("\(hp), \(atk) 끝판왕")
case .goblin:
print("걍 고블린")
}
Author And Source
이 문제에 관하여(열거형), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@strangeman/열거형
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
enum Position {
case warrior
case sorceress
case healer
}
let player: Position = .warrior
enum Position: Int {
// 아무 값이 없으면 자동으로 첫 번째 부터 0으로 시작
// 이후 정수값 1씩 더함
case warrior //0
case sorceress //1
case healer //2
//------------------------
// 값을 지정했을 때
case warrior //0
case sorceress = 4
case healer //5
}
enum Monster: String {
case goblin = "hp: 100, atk: 10"
case boss = "hp: 10000, atk:100"
}
// case들이 같은 Raw Value를 가지는 단점이 존재 이때 연관 값을 사용
//-------------------
// 연관값 사용
// 튜플을 활용하여 연관 값을 받음
enum Monster {
case goblin(hp: Int, atk: Int)
case boss(hp: Int, atk: Int)
}
let monster: Monster = .goblin(hp: 100, atk: 10)
//열거형 활용 switch 매칭
switch monster {
case .goblin(hp: 20, atk: 10):
print("Lv1 고블린")
case .goblin(hp: 100, _):
print("고기방패")
case .goblin(hp: 100, atk: 10):
print("lv5 고블린")
case .boss(let hp, let atk):
print("\(hp), \(atk) 끝판왕")
case .goblin:
print("걍 고블린")
}
Author And Source
이 문제에 관하여(열거형), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@strangeman/열거형저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)