본문 바로가기
::public/Swift

Optional

by 해맑은욱 2022. 11. 3.
var carName: String?
carName = nil
carName = "tank"

var bestMovieStar: String? = "leo"
let num = Int("10")


// 고급 기능 4가지

// 1. Forced unwrapping > 억지로 박스를 까보기(value값만 가져옴)
// 2. Optional binding (if let) > 부드럽게 박스를 까보자 1
// 3. Optional binding (guard) > 부드럽게 박스를 까보자 2
// 4. Nil coalescing > 박스를 까봤더니, 값이 없으면 디폴트 값을 줘보자

// 1. Forced unwrapping
carName = "그랜져"
print(carName)  // Optional("그랜져")\n
print(carName!) // 그랜져\n

// 2. Optional binding (if let)
if let unwrappedCarName = carName {
    print(unwrappedCarName)
} else {
    // carName = nil
    print("Empty Car Name")
}

func printParseInt(from: String){
    if let parseInt = Int(from){
        print(parseInt)
    } else {
        print("Not Convert Int")
    }
}
printParseInt(from: "100")          // 100\n
printParseInt(from: "100돌이입니다")   // Not Conver Int

// 3. Optional binding (guard)
func printParseIntt(from: String){
    guard let parsedIntt = Int(from) else {
        print("Not Convert Int")
        return
    }
    print(parsedIntt)
}
printParseIntt(from: "100")          // 100\n
printParseIntt(from: "100돌이입니다")   // Not Conver Int

// 4. Nil coalescing
//carName = "GV80"
let myCarName: String = carName ?? "그랜져" // carName == nil 이면 디폴트 값을 넣는다.

'::public > Swift' 카테고리의 다른 글

Dictionary  (0) 2022.11.06
Array  (0) 2022.11.03
Function  (0) 2022.06.06
tuple  (0) 2022.04.15
var/let  (0) 2022.04.10