[Swift] 17. 옵셔널 체이닝

Hoojeong Kim·2022년 3월 10일
0

Swift Base

목록 보기
19/22
post-thumbnail

옵셔널 체이닝

옵셔널 체이닝은 옵셔널에 속해 있는 nil일지도 모르는 프로퍼티, 메서드, 서브스크립션 등을 가져오거나 호출할 때 사용할 수 있는 일련의 과정이다. 옵셔널에 값이 있다면 프로퍼티, 메서드, 서브스크립트 등을 호출할 수 있고, 옵셔널이 nil이라면 프로퍼티, 메서드, 서브스크립트 등은 nil을 반환한다.

즉, 옵셔널을 반복 사용하여 옵셔널이 자전거 체인처럼 서로 꼬리를 물고 있는 모양이기때문에 옵셔널 체이닝이라고 부른다.


옵셔널 체이닝 프로퍼티나 메서드 또는 서브스크립트를 호출하고 싶은 옵셔널 변수나 상수 뒤에 물음표(?) 또는 느낌표(!)를 붙여 표현한다.
struct Developer {
	let name: String
}

struct Company {
	let name:String
    var developer: Developer?
}

var developer = Developer(name: "kim")
var company = Company(name: "Hoojeong", developer: developer)

print(company.developer?.name)
print(company.developer!.name)
Optional("kim")
kim

결과를 보면 알 수 있다 싶이, 물음표(?)를 사용한 경우에는 nil이 반환될 수 있으므로 옵셔널에 쌓여있다.

반대로 느낌표(!)의 경우, 옵셔널에서 값을 강제 추출하는 효과가 있어서 옵셔널을 벗긴 본래의 값을 반환한다. 하지만 강제로 추출하기 때문에 옵셔널에 값이 없다면 런타임 에러가 발생할 수 있다. 때문에 느낌표(!)의 사용은 지양하는 것이 좋다.

profile
나 애기 개발자 👶🏻

0개의 댓글