본문 바로가기

Swift

Swift 정리 : Optional

Optional 타입

값을 반환할 때 오류가 발생할 가능성이 있는 값은 옵셔널 타입으로 감싸서 반환함

옵셔널 타입을 선언하기 위해서는 타입 선언부 뒤에 ? 를 붙임

forced unwrapping - 강제 언래핑

var x : Int? //옵셔널 정수형 변수 x 선언

var y : Int = 0

x = 15  // 초기값이 없으면 nil이 저장됨

print(x) // Optional(15)

print(x!) // forced unwrapping해서 10이 나옴

// 옵셔널에 래핑된 값을 !를 붙여서 풀어줌

print(y)

x = x! + 2 // 가능 -> forced unwrapping을 사용하면 가능

print(x) // Optional(17)

y = x! // 가능 -> forced unwrapping을 사용하면 가능

print(y) // 17

 

 

Optional Binding - 강제 언래핑 하는 또 다른 방법

옵셔널에 할당된 값을 임시 변수 또는 상수에 할당

var x : Int?

x = 15

if let xx = x { //옵셔널 변수 x가 값(10=5)이 있으므로 언래핑해서 일반 상수 xx에 대입하고 if문 실행

  print(x, xx) //Optional(15) 15

else {

  print("nil")

}

var x1 : Int?

if let xx = x1 { //옵셔널 변수 x1이 값이 없어서 if문의 조건이 거짓이 되어 if문 실행하지 않고 else로 감

  print(xx)

else {

  print("nil")

}

 

여러 옵셔널 변수들을 한번에 언래핑

var pet1: String?

var pet2: String?

pet1 = "cat"

pet2 = "dog"

if let firstPet = pet1, let secondPet = pet2 {    //, 를 사용하여 한번에 언래핑

   print(firstPet, secondPet) // cat dog

} else {

  print("nil")

}

 

'Swift' 카테고리의 다른 글

Swift 정리 : 제어문  (0) 2022.09.27
Swift 정리 : Nil-Coalescing Operator(Nil합병연산자)  (0) 2022.09.27
Swift 정리 : 연산자  (0) 2022.09.27
Swift 정리 : 튜플  (0) 2022.09.27
Swift 정리 : 자료형  (0) 2022.09.27