Unwrap
작성일
옵셔널변수
옵셔널이란?
- 값이 있는지 없는지 모른다.
var someVariable : Int? = nil
if someVariable == nil {
someVariable = 90
}
만약 someVariable이 값이 없으면 90을 넣어주겠다.
대신, 이렇게하면 값을 90이 아니라 Optional(90)이 된다.
언랩핑이란?
- 감싸져있는 것을 벗기는 것.
방법1 if let 사용
if let otherVariable = someVariable {
print("언래핑 되었따. 즉 값이 있다. otherVariable : \(otherVariable)")
} else {
print("값이 없다.")
}
만약에 someVariable에 값이 있다면 otherVariable로 사용하겠다. 라는 뜻이다.
따라서 출력하면
언래핑 되었따. 즉 값이 있다. otherVariable : 90
방법2 ?? 사용
someVariable = nil
let myValue = someVariabel ?? 10
print("myValue: \(myVaule)")
이렇게 사용해도 된다. 이건 someVariable이 비어있으면 즉, 값이 없으면 기본값 으로 ?? 뒤에있는걸 넣겠다라는 뜻이다.
방법3 guard let
- 값이 없으면 리턴 해버린다.
- 값이 없으면 지나가버린다.
var firstValue : Int? = 30
var secondValue : Int? = 50
unwrap(firstValue)
unwrap(secondValue)
func unwrap(_ parameter: Int?) {
print("unwrap() called")
guard let unWrappedParam = parameter else {
return
}
print("unWrappedParam: \(unWrappedParam)")
}
이렇게 함수를 따로 만들고, guard let을 사용해서 언랩핑 해줄수 있다.