iOS swift

swift-optional(옵셔널)

춘행이 2022. 2. 24. 13:45
728x90

 

옵셔널

선택적이라는 뜻으로 값이 있을 수도 있고 없을 수도 있다

변수의 자료형 뒤에?를 붙여서 옵셔널 변수 선언

 

var optionalName:String?="choi"

print(optionalName) // Optional("choi")라고 출력


var otherName:String = optionalName//에러

 

optionalName은 옵셔널 변수이기 때문에 choi라고 출력되지 않고 Optional("choi")로 출력된다

실행되기 전까지 값이 있는지 없는지 몰라서 대입 불가

 

옵셔널 바인딩

Optional("choi")처럼 출력된 것을 해제하는 법

옵셔널 바인딩은 옵셔널의 값이 존재하는지를 검사한 뒤, 존재한다면 그 값을 다른 변수에 대입

if let 또는 if var를 사용

옵셔널의 값을 벗겨서 값이 있다면 if문 안으로 들어가고, 값이 nil이라면 그냥 통과

if let name = optionalName{

	print(name)
}//optionalName에 값이 있으면 출력
//없으면 if문 지나침

여러 개의 옵셔널 바인딩하는 법

var optionalName1:String? = "choi1"
var optionalName2:String? = "choi2"

if let name1 = optionalName1, name2 = optionalName2{
	//name1,name2 전부 값이 있을때
}

//위와 동일
if let name1 = optionalName1 {
  if let name2 = optionalName2 {
    
  }
}

 

참고

https://devxoul.gitbooks.io/ios-with-swift-in-40-hours/content/Chapter-2/optionals.html

 

옵셔널 (Optional) · 40시간만에 Swift로 iOS 앱 만들기

 

devxoul.gitbooks.io

 

728x90