daino_saur
article thumbnail
반응형

 

섬네일 - 옵셔널

 

옵셔널이란?

 

변수를 선언하고 값을 지정하지 않으면 오류가 난다.

-> 이것을 방지하기 위해 옵셔널 등장

 

옵셔널 값

 

 

옵셔널 타입이란?
값이 없을 수도 있는 경우를 포함하고 있는 임시적 타입

 

옵셔널 값 사용법

 

var id: Int? = 3
var password: Int?

print(password)           //nil

 

  • 모든 타입 뒤에?(물음표)를 붙이면 옵셔널 타입이 된다.
  • 값이 없어도 되는 타입이므로 값이 없어도 괜찮다.
  • 값이 없을 시는 nil로 자동 초기화가 된다.

 

nil이란?
값이 없음을 나타내는 키워드(0이 아니다.)

 

옵셔널 값 추출

 

옵셔널 타입에 값은 옵셔널로 감싸져 있으므로 값을 추출 (unwrapping) 해야 한다.

 

옵셔널 값 추출

 

옵셔널 값을 추출하는 방법

 

강제로 값을 추출(Forced Unwrapping)

 

옵셔널 값이 nild이 아닌 값이 있다는 것이 확실할 때 사용한다.

 

var num: Int? = 7

print(num!)

7         //강제 추출연산자 !를 옵셔널 표현식 뒤에 붙여 강제로 옵셔널 값 추출

 

if문으로 nil이 아님을 확인 후, 강제 추출

 

if num !=nil {
    print(num!)
}

 

옵셔널 바인딩 (if let 바인딩) ⭐️⭐️⭐️

 

바인딩이 된다면, 특정 작업을 실행한다.

 

if num !=nil {
    print(num!)
}

 

guard let 바인딩도 사용 가능하다.

 

func dosomething(num: Int?) {
    guard let n = num else { return }
    print(n)
}

 

닐 코얼레싱 (Nil - Coalescing) 연산자 사용

 


코얼레싱(coalescing)이란?
더 큰 덩어리로 합치다.

 

옵셔널 타입에 대하여, 디폴트(기본) 값을 제시할 수 있을 때 사용 (nil의 가능성을 없앰)

 

var str: String?
var serverName: String?
var userName = serverName ?? "미인증사용자".    //옵셔널표현식이 nil이라면, 기본값을 제시

print(userName)

//미인증사용자

 

함수와 옵셔널 타입

 

함수의 파라미터를 지정시 옵셔널 타입의 파라미터를 사용할 수 있다.

 

함수에서의 옵셔널 타입 사용

 

 

반응형
profile

daino_saur

@daino

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!