[swift] 6. Unwrap 옵셔널 변수

7567 단어 swiftiOSiOS

📖 옵셔널(Optional)

옵션(option)의 단어 뜻을 떠올려보며, 있을 수도 있고 없을 수도 있다는 특징을 떠올려 봅시다.
즉, 값이 있는지 없는지 모를 때를 옵셔널 이라 합니다.

📌 옵셔널 변수

자료형 뒤에 ? 를 붙여서 나타냅니다.

ex)

var someVariable : Int? = nil

💬 nil값이 없음 을 의미함

if someVariable == nil {
    someVariable = 90
}

print("someVariable: ", someVariable)

>>> someVariable:  Optional(90)

💬 옵셔널 변수 는 값이 Optional() 함수 안에 감싸서 나타남


📌 nil 기본값으로 채우기

만약 상수 값이 비어있을 경우 (nil), 기본값으로 넣고 싶은 값이 있으면 ?? 를 적습니다.

ex)

someVariable = nil

let myValue = someVariable ?? 10 // nil일 때, 10을 넣겠다!

print("myValue : \(myValue)")

>>> myValue : 10

📖 언랩핑 (Unwrapping)

직역해보면 랩(wrap) , 즉 감싸져 있는 것을 벗기는(un-) 일 입니다.
감싸져 있는 옵셔널을 벗겨 봅시다.

📌 언랩핑 방법 1

새로운 상수를 생성하고 값을 집어 넣습니다.

ex)

if let otherVariable = someVariable {
      print("언래핑되었다. 즉 값이 있다. otherVariable : \(otherVariable)")
} else {
    print("값이 없다.")
}

>>> 언래핑되었다. 즉 값이 있다. otherVariable : 90

📌 언랩핑 방법 2

가드(guard) 를 활용합니다.

ex)

var firstValue : Int? = 30
var secondValue : Int? = 50 // 두 값을 모두 언랩핑해보자

💬 언랩핑하는 함수를 만듦

func unwrap(parameter : Int?) { // 메소드 안에 들어가는 값을 파라메터라 함
    print("unwrap() called")
    // 값이 없으면 리턴 해버린다.
    // 즉 지나간다.
    guard let unWrappedParam = parameter else {
        return
    }
    print("unWrappedParam : \(unWrappedParam)")
}
unwrap(parameter : firstValue)
unwrap(parameter : secondValue)

>>> unwrap() called
unWrappedParam : 30
unwrap() called
unWrappedParam : 50

➡️ 여기에서 () 안에 'parameter :' 쓰는 게 번거롭다면, 함수 작성할 때 'parameter' 앞에 _ 를 붙이면 됨

unwrap(firstValue) // 이렇게!!

좋은 웹페이지 즐겨찾기