값이 없을 수 있는 상황에서 사용한다.
? 로 나타낸다.
var serverStatus: Int? = 404
옵셔널은 두가지 가능성을 갖는다
1. 값이 있고 래핑된 값을 언래핑하여 해당 값에 접근할 수 있다.
2. 값이 없다.
옵셔널 값이 빈값인지 확인후 존재하면 그 값을 대입시키는 과정을 의미한다.
강제 언래핑 보다 안전하다.
if : if 코드 내에서만 사용이 가능
guard : guard 코드 밖에서도 사용이 가능하다.
! 를 이용하여 강제로 옵셔널 값을 추출할 수 있다.
nil이 아닌 것이 확실할 때 사용해야 한다.
var sevenTeen: [Int: String] = [1:"에스쿱스", 2:"정한", 3:"조슈아", 4:"준",
5:"호시", 6:"원우", 7:"우지", 8:"디에잇", 9:"민규", 10:"도겸",
11:"승관", 12:"버논", 13:"디노"]
print(sevenTeen[8]) //출력 : Optional("디에잇")
print(sevenTeen[8]!) //출력 : 디에잇
옵셔널 변수읙 값이 nil일 때를 대비하여 기본값을 설정할 수 있다.
이해가 잘 안된다.
옵셔널을 연쇄적으로 사용하는 것을 의미한다.
. 을 통해 내부 프로퍼티나 메서드에 연속적으로 접근할 때 옵셔널 값이 있으면 옵셔널 체이닝으로 접근할 수 있다.
struct sevenTeen{
var name: String
var address: Address
}
struct Address {
var city: String
var street: String
var detail: String
}
let SCoups: sevenTeen? = sevenTeen(name : "S.Coups", address: Address(city:"서울", street: "신논현로", detail: "100"))
print(SCoups?.address.city) // Optional("서울")
좋은 글 잘 읽었습니다, 감사합니다.