/**
옵셔널 패턴 (Optional Pattern)
*/
let number10: Int? = 1
// 1. 열거형 케이스 패턴(앞에서 배운)
switch number10 {
case .some(let z):
print(z)
case .none:
print("nil")
}
// 2. 옵셔널 패턴 (현재 배울)
switch number10 {
case let z?: // .some을 조금 더 간소화하는 문법
print(z)
case nil: // .none 이라고 써도 됨
print("nil")
}
/**
옵셔널 패턴의 사례(열거형 케이스 패턴과 비교)
*/
let numb: Int? = 7
print(num)
// 1. 열거형 케이스 패턴
switch num {
case .some(let x):
print(x)
case .none:
break
}
// 2. 옵셔널 패턴
switch num {
case let x?:
print(x)
case nil:
print("nil")
break
}
/**
if문
*/
// 1. 열거형 케이스 패턴
if case .some(let x) = num {
print(x)
}
// 2. 옵셔널 패턴
if case let x? = num {
print(x)
}
/**
for 문
*/
let array10: [Int?] = [1,3, nil, 5,7]
// 1. 열거형 케이스 패턴
for case .some(let number) in array10{
print(number)
}
// 2. 옵셔널 패턴
for case let x? in array10 {
print(x)
}