[Swift] 옵셔널에 대한 예제 코드

Uno·2021년 8월 6일
0

Tip-Swift

목록 보기
12/26

단순히 예제 코드를 작성했습니다.

/*
 Options for unwrapping Optionals
 
 1. Opitonal binding (?)
 -> if, guard, switch
 
 2. Foreced unwrapping (!)
 
 3. Nil Coalescing Operator (??)
 
 4. Optional Chaining (?)
 */

// 1. 옵셔널 바인딩
let possibleNumber1: Int? = 42

if let number = possibleNumber1 {
    print("값은 \(number)")
} else {
    print("DEBUG>> 값이 없습니다. ")
}

func printNumber(possibleNumber: Int?) {
    
    guard let number = possibleNumber else {
        print("DEBUG>> 값이 없습니다. ")
        return
    }
    
    print("DEBUG>> \(number) ")
}

// 2. Foreced unwrapping Optional
var possibleNumber2: Int? = 1 // 1 이 없다면 아래 줄은 버그가 발생.
let number = possibleNumber2! 

// 3. Nil-Coalescing
let nickName: String? = nil
let defaultName: String = "Uno"
let informalGeeting = "Hi \(nickName ?? defaultName)"

// 4. Optional Chaining

class Person {
    var residence: Residence?
}

class Residence {
    var numberOfRooms = 1
}

let john = Person()

if let roomCount = john.residence?.numberOfRooms {
    print("DEBUG>> 방 개수 \(roomCount) ")
} else {
    print("DEBUG>> 이용가능 방이 없습니다! ")
}
profile
iOS & Flutter

0개의 댓글