열거형에 연관값이 있는 경우

쏘스야·2023년 4월 5일
0

ios 개발자의 첫걸음

목록 보기
39/61

/**
 열거형에 연관값이 있는 경우
 */

chip = Computer.hardDisk(gb: 10)

/**
 열거형 case 패턴
 */

if case Computer.hardDisk(gb: let gB) = chip {
    print("\(gB) 기가 바이트 하드디스크이다.")
}


if case Computer.hardDisk(gb: let gB) = chip, gB == 256 { // 처리를 다양하게 활용 가능
    print("\(gB) 기가 바이트 하드디스크이다.")
}


let chiplists : [Computer] = [
    .cpu(core: 4, ghz: 3.0),
    .cpu(core: 8, ghz: 3.5),
    .ram(16, "SRAM"),
    .ram(32, "DRAM"),
    .cpu(core: 8, ghz: 3.5),
    .hardDisk(gb: 500),
    .hardDisk(gb: 256)
    
]

for case let .cpu(core: c, ghz: h) in chiplists {
    print("CPU 칩 : \(c)코어, \(h)헤르츠")
}

for chip in chiplists {
    print("\(chip)")
}

// 배열에 optional 타입으로 사용
let arrays: [Int?] = [nil, 2, 3, nil, 5]

// .some()을 사용 -> nil 은 버린다
for case let .some(number) in arrays {
    print("\(number)")
}
profile
개발자

0개의 댓글