var name: String? // nil이 할당될 수 있다.
var name: String // nil이 할당될 수 없다.
enum Optional<Wrapped>: ExpressibleByNiliteral {
case none
case some(Wrapped)
}
let optionalValue: Optional<Int> = nil // 이렇게 표현해도 되지만
let optionalValue: Int? =nil // 물음표를 사용하여 간단히 표현한다.
var dogName: String?
dogName = nil
// 1. 강제추출
print(dogName!)
// 2. if let 방식
if let unwrappedDogName = dogName{
print(unwrappedDogName)
} else{
print("DogNAme is nil")
}
// 3. guard
guard let unwrappedDogName = dogName else {
print("DogNAme is nil")
return
}
print(unwrappedDogName)
💡⠀정말 꼭 필요한 경우에 한하여, 자신이 책임질 수 있는 상황이 아니라면 옵셔널 강제추출을 사용하지 않겠노라 다짐하는 글을 미래의 나에게 한문장씩 남겨봅시다.
강제추출 방식 그동안 잘 썼다.. (물론 꼭 nil이 나올 수 없는 경우에 쓰긴 했음 😅) 다신(?) 보지 말자 ~