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을 사용해서 언랩핑 해줄수 있다.