반응형
// 옵셔널 체이닝
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 |