iOS/Swift

[Swfit] 옵셔널 체이닝

유훈 | Yuhun 2022. 1. 24. 16:26
반응형
// 옵셔널 체이닝

class Person {
    var name: String
    var job: String?
    var home: Apartment?
    
    init (name: String) {
        self.name = name
    }
}

class Apartment {
    var buildingNumber: String
    var roomNumber: String
    var `guard`: Person?
    var owner: Person?
    
    init(dong: String, ho: String) {
        buildingNumber = dong
        roomNumber = ho
    }
}

let personA: Person? = Person(name: "nameA")
let house: Apartment? = Apartment(dong: "101", ho: "606")
let personB: Person? = Person(name: "personB")

// 옵셔널 체이닝
house?.guard = personB
personA?.home = house
personA?.home?.guard?.name // personB

// nil 병합 연산자 앞이 nil이하면 뒤의 값 대입
// 이거 약간 js의 || 같네
// ex
var ex: String
ex = personA?.home?.guard?.job ?? "nil이 들어 있습니다."

출처 : 야곰 스위프트 기본 문법 강좌

반응형

'iOS > Swift' 카테고리의 다른 글

[Swift] 프로토콜 protocol  (0) 2022.01.25
[Swift] assert 와 guard  (0) 2022.01.25
[Swift] 클래스의 생성자와 소멸자  (0) 2022.01.24
[Swift] 클래스의 상속  (0) 2022.01.24
[Swift] 클로저  (0) 2022.01.23