중첩 타입(nested type)
작성일
중첩 타입(nested type)
struct MyPet {
enum Kind { // 스트럭트안에 enum 타입
case cat // kind enum의 케이스
case dog
// enum은 value와 name 이라는 변수를 가지고
var value: String {
switch self { // 자신의 타입에 따라 값이 부여
case .cat:
return "고양이"
case .dog:
return "강아지"
}
}
var name: String {
switch self {
case .cat:
return "개냥이"
case .dog:
return "해피"
}
}
}
let kind: Kind // MyPet 스트럭트가 가지는 Kind 변수
var description: String { // 값 확인을 위한 변수
return "우리집 \(kind.value) '\(kind.name)'에요"
}
}
let myCat = MyPet(kind: .cat)
print(myCat.description) // 우리집 고양이 '개냥이'에요
let myDog = MyPet(kind: .dog)
print(myDog.description) // 우리집 강아지 '해피'에요
출력
우리집 고양이 '개냥이'에요
우리집 강아지 '해피'에요