어흥

[Swift] nil + 4가지 고급 기능 본문

iOS

[Swift] nil + 4가지 고급 기능

라이언납시오 2020. 8. 24. 16:37
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