Xcode Optional

Optionals

Optional Binding

Implicitly Unwrapped Optionals

Type! IUO로 자동으로 추출된다고 생각하면 된다.

let num : Int! = 2

let a = num

a // ontional(2)

형식 추론으로는 언레핑 되지않는다.

let b: int = num
b // 2

이런식으로 특정 조건에서 언레핑 되어야할때 바로 언레핑이 되게 한다.

그래서 nil값이 있다면 에러가 발생한다. 잘 사용하지 않는다.

옵셔널 바인딩을 쓰는것이 다 합당하다.

Nil-Coalescing Operator

var msg = ""
var input: String? = "Swift"

if let inputName = input {
	msg = "Hello," + inputName
} else {
	msg = "Hello, Stranger"
}

print(msg) // "Hello, Swift"
var str = "Hello," + (input != ? input! : "Stranger")

print(str) // "Hello, Swift"

둘다 같은 방식이다

Nil-Coalescing Operator - 문법 a ?? b

str = "Hello, " + (input ?? "Stranger")
print(str) // "Hello, Swift"
input = nil
str = "Hello, " + (input ?? "Stranger")
print(str) // "Hello, Stranger"

?? 뒤에 만약 해당 값이 nil이라면 나올 값을 지정한다(타입은 같아야한다.)

논리 연산자와 마찬가지로 단락을 평가하여 왼쪽 값이 없다면(nil)일때 값을 리턴해주는 값이다.

Optional Chaining

옵셔널을 연속해서 호출하기

  1. 체이닝의 결과는 옵셔널이다
  2. 하나라도 nil을 리턴한다면 해당 문장을 nil로 리턴한다.

좋은 웹페이지 즐겨찾기