iOS/Swift

[Swift] Unwrap 옵셔널 변수

단비_danbee 2022. 12. 1. 01:03

옵셔널(Optional)이란?

= 값을 알지 못하는 상태

= 값이 있는지 없는지 모르는 상태

 

/* Type이 Int형 이긴 한데, 값이 있는지는 모르겠을때 물음표를 붙임 */
var someVariable : Int? = nil

물음표가 없다는 뜻은 값이 있다는것이기 때문에, 값이 nil 이면 Type 옆에 물음표를 붙여야 함

 

/* 만약 변수 값이 nil 이면 90을 대입해라 */
if someVariable == nil { someVariable = 90 }

 

 

언랩핑이란?

= 감싸져 있는 것을 벗기는 것

= 옵셔널 변수를 값이 있는 변수로 바꾸는 것

언래핑을 하지 않으면 Optional(90) 으로 출력되고 언래핑 후에는 90 으로 출력됨

/* 만약 someVariable이 값이 있다면, otherVariable로 사용하겠다.*/
if let otherVariable = someVariable {
	print("언래핑 되었음. 즉 값이 있음. otherVariable : \(otherVariable)")
} else {
	print("값이 없다.")
}

 

/* someVariable 이 비어 있으면 즉 값이 없으면 기본값으로 요놈을 넣겠다*/
let myVariable = someVariable ?? 10
print("myValue:\(myValue)") // 10 으로 출력됨

var firstValue : Int? = 30
var secondValue : Int? = 50

print("firstValue : \(firstValue)") // Optional(30)
print("secondValue : \(secondValue)") // Optional(50)

unwrap(firstValue)
unwrap(secondValue)

func unwrap(parameter: Int?){
	print("wrap() called") // 값이 없으면 해당 함수를 리턴하겠다
    guard let unWrappedParam = parameter else {
    	return //어떠한 처리도 하지 않고 반환하겠다
    }
    print("unWrappedParam : \(unWrappedParam)")
}