어흥
[Swift] nil + 4가지 고급 기능 본문
728x90
반응형
1. nil이란?
: 박스를 생성했는데 안에 값이 없는 상태
var carName: String? = nil //타입뒤에 '?' 꼭 필요
carName = nil //nil 상태
carName = "땡크" //nil 아닌 상태
2. 4가지 고급 기능
- Forced unwrapping > 억지로 박스를 까보기
- Optional binding(if let) > 부드럽게 박스를 까보자 1
- Optional binding(guard) > 부드럽게 박스를 까보자 2
- Nil coalescing > 박스를 까봤더니, 값이 없으면 디폴트 값을 준다
var carName = "Bently"
print(carName) //Optional("Bently") 출력
//1. Forced unwrapping
print(carName!) //Bently 출력
carName = nil
print(carName!) //error
//2. Optional binding(if let)
if let unwrappedCarName = carName{
print(unwrappedCarName)
} else{
print("Car name 없다")
}
func printParsedInt(from: String){
if let parsedInt = Int(from){
print(parsedInt)
} else{
print("Int로 컨버팅 불가")
}
}
printParsedInt(from: "100") //if문 출력
printParsedInt(from: "100.1") //else문 출력
//3. Optional binding(guard)
func printParsedInt2(from: String){
guard let parsedInt = Int(from) else {
print("Int로 컨버팅 불가")
return
}
print(parsedInt)
}
printParsedInt2(from: "100") //if문 출력
printParsedInt2(from: "100.1") //else문 출력
//4. Nil coalescing
carName=nil
let myCarName: String = carName ?? "모델 S" //모델 S
728x90
반응형
'iOS' 카테고리의 다른 글
[Swift] Dictionary, Set (0) | 2020.08.25 |
---|---|
[Swift] 배열 (0) | 2020.08.25 |
[Swift] 기초 문법/ 지식 2 (0) | 2020.08.24 |
[Swift] Flow Control (0) | 2020.08.23 |
[Swift] 레이아웃 + 기본설정 (2) | 2020.08.21 |
Comments