App Dev/iOS
iOS Swift 옵셔널 변수를 Unwrapping 하는 두가지 방법
이준호
2023. 3. 27. 16:55
반응형
Swift가 가지고 있는 가장 큰 특징 중 하나가 바로 옵셔널Optional입니다. 직역하면 '선택적인' 이라는 뜻이 되는데요. 값이 있을 수도 있고 없을 수도 있는 것을 나타냅니다.
https://devxoul.gitbooks.io/ios-with-swift-in-40-hours/content/Chapter-2/optionals.html
옵셔널 (Optional) · 40시간만에 Swift로 iOS 앱 만들기
devxoul.gitbooks.io
[옵셔널 변수]
import UIKit
//옵셔널이란 ?
// 값이 있는지 없는지 모른다.
// nil -> 값이 없다.
var someVariable : Int? = nil
if someVariable == nil {
someVariable = 90
}
print("언래핑이 안되었다. 즉 아직 모른다 -> someVariable : \(someVariable)")
Optional <- 값이 있는지 없는지 모른다.
nil -> 값이 없다.
[결과]
언래핑이 안되었다. 즉 아직 모른다 -> someVariable : Optional(90)
래핑이 되어 있는 값 반환
[언랩핑_No.1]
if let otherVariable = someVariable {
print("언래핑 되었다 . 즉 값이 있다 -> otherVariable : \(otherVariable)")
}
else{
print("값이 없다. ")
}
[결과]
언래핑 되었다 . 즉 값이 있다 -> otherVariable : 90
알맹이만 쏙 끄집어내서 출력하게 된다.
위의 if 문을 더 간단하게 작성하는 방법도 있다.
someVariable = nil
// someVariable 이 비어있으면 즉 값이 없으면 기본값으로 요놈을 넣겠다
let myValue = someVariable ?? 10
print("myValue : \(myValue)")
?? -> 만약에 someVariable 에 값이 없으면 10 을 넣겠다.
[언랩핑_No.2]
var firstValue : Int? = 30
var secondValue : Int? = 40
옵셔널 변수 선언하였다.
함수로 언랩핑을 진행해 본다.
func unwrap(parameter : Int?){
print("unrwap() called")
guard let upWrappedParam = parameter else{
return
}
print("upWrappedParam \(upWrappedParam)")
}
guard let upWrappedParam = parameter else{
return
}
이 코드도 parameter 에 값이 있으면 upWrappedParam에 값을 넣겠다 !
[결과]
unwrap(parameter : firstValue)
unwrap(parameter : secondValue)
->
unrwap() called
upWrappedParam 30
unrwap() called
upWrappedParam 40
반응형