스위프트 옵셔널 심화 퀴즈

윤형찬·2020년 12월 14일
0
post-thumbnail

Q1

아래 코드에서 yagom 객체의 집(home)의 경비원(guard)의 이름(name)의 값에 접근하는 코드를 한 줄로 작성해봅시다.

class Person {
    var name: 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 yagom: Person? = Person(name: "yagom")

let guardName: String? = _________

정답 : yagom?.home?.guard?.name


Q2

직전 문제와 연결된 코드입니다. 아래 코드 실행 후 출력 결과를 빈칸에 입력하세요.

yagom?.home?.guard?.name = "슈퍼맨"
let name = guardName ?? "경비원"
print(name) // [출력결과]

정답 : 경비원


Q3

아래 빈 칸을 알맞게 채워보세요

class Person {
  var name: String = ""
}
class Student: Person {
  var school: String = ""
}

var yagom: Person = Person()

if let casted: Student = yagom ______빈칸________ Student {
  print("\(casted.name)은 Student입니다")
}

정답 : as?
(다운 캐스팅)

profile
https://github.com/velmash

0개의 댓글