본문 바로가기

[Swift] Swift Optional

I'm 영서 2021. 5. 1.
반응형
if let name = myNAme {
	print(name)
}else{
	print("입력된 값이 없음")
}

Swift는 효과적인 코드제어를 위해 Optional 이라는것을 만들었다

 

Swift에서는 변수를 생성할때 비어있는것을 명시해줄 수 있는데 해당 코드는 

var myName : String?

이렇게 변수를 선언하면 아무것도 담기지 않은 값으로 선언한다.

 

아무튼 이제 이런 변수를 안전하게 혹은 강제로 출력하기 위한 방법이 존재한다.

 

Forced unwarpping

>> 강제로 값을 출력하는것  

print(myName!)

! 가 뒤에 붙으면 강제로 해당 값을 출력해주는것인데

지금은 메모리에 연결되지 않은 nil상태인데 결과값이 어떻게 될까?

 

당연히 메모리에 잡혀있찌 않으니 에러가 발생한다. 

때문에 안전한 방법은 아니다.

 

Optional Binding  

>> 조건을 통해 값을 확인

if 구문을 활용한 방법과 guard라는 특별한 문법을 사용하는 방법이 있다.

먼저 if 구문을 사용하는 경우

if let name = myName {
	print(name)
}else{
	print("입력된 값이 없음")
}

정해진 값만을 받는 name을 생성해  myName과의 비교!

 

guard를 사용하는 경우

func isMyName(myName myName : String) {
  	guard let name = myName else{
     	 print("결과값 없음")
         return
  	}
	print(name)
}

name을 받아와서 맞지 않는경우 결과값 없음을 출력후 리턴해주는 방법으로 사용한다.

 

Nil Coalescing

값이 비어있는 경우 디폴트 값을 준다.

 

let myRealName : String = myName ?? "YS"

 myName 변수에 값이 없으면 myRealName에 YS 를 지정해준다.

반응형

'Study > Swift' 카테고리의 다른 글

[Swift] Optional 심화  (0) 2021.05.02

댓글