[ Swift ] Optional
2020. 10. 5. 17:49ㆍSwift
var petName: String?
petName = "Mango"
print(petName)
petName 변수를 String 또는 nil 값으로 처음에 선언했다.
petName = "Mango" 로 선언했다 .
petName 을 출력하면 wrap 된 값이 출력되므로
Optional("Mango")
다음과 같은 문구가 출력된다.
var petName: String?
petName = "Mango"
print(petName)
petName = nil//unwrapping optional
var result: Int? = 30
print(result)
petName 을 nil 로 unwrapping 시켜준다.
result 값을 Int 형 Optional 값으로 선언하고 출력을 하면
Optional("30")
다음과 같이 출력된다. 위의 두개의 예시는 선언할 수 있는 양식에 대해 두가지 타입이 있다고 이해할 수 있다.
var petName: String?
petName = "Mango"
print(petName)
petName = nil//unwrapping optional
var result: Int? = 30
print(result)
petName = "Potato"//"Mango"
var petAge: Int? = 2
var unwrappedPetName = petName!//느낌표 < force unwrap(Dangerous!) the optional
print ("The pet's name is \(unwrappedPetName)")
if petName != nil {
let unrappedPetName = petName
}
if let petName = petName,// shadowing
let petAge = petAge {
print("The pet is \(petName) and they are \(petAge)")
}
else{
print("No pet name or age")
}
var optionalInt: Int? = nil//10
var requiredResult = optionalInt ?? 10 // 0 is default value
ㄷ
unwrappedPetName 변수는 petName의 값을 unwrapping 시켜준것이다. 느낌표로 벗겨낼 수 있다. 즉 petName으로 선언했던 "Potato"가 unwrappedPetName이다.
if petName != nil 이면 ubrapping 시켜준다는 의미이다.
shadwing 이란 기능은 나중에 더 자세히 다룰것이다.
petName이란 변수가 if 블럭 안에서 만 변수로 다뤄진다는 내용인거 같은데 나중에 자세히 알아보도록하자 !
//tenary Optional
let hasAllergies = true
let dogName : String?
dogName = hasAllergies ? nil : "Mango"// 순서가 바뀌면 성립되지 않는다.
print(dogName)
'Swift' 카테고리의 다른 글
[ Swift ] DispatchQueue (0) | 2020.10.21 |
---|---|
[ Swift ] http data 가져오기 data trimming (0) | 2020.10.15 |
[ Swift ] @IBAction 소스 분석해보기 (0) | 2020.10.14 |
[ Swift ] Tuples (0) | 2020.10.06 |
[ Swift ] if, guard, switch문 사용방법 (0) | 2020.09.29 |