본문 바로가기

[Swift] Optional 심화

I'm 영서 2021. 5. 2.
반응형

 

nil

다른언어의 null

값이 할당되지 않은 상태

기본타입에도 사용 가능

 

옵셔널 타입 

일반 변수/ 상수 : nil대입 불가

옵셔널타입 : nil선언 가능 

 

 

 

var myOptional : Int?

Swift에서 ?를 사용해 optional 로 변수를 선언해준다는 것을 확인했다.

 

왜냐하면

Swift에서는 변수 선언시 nil이 허용되지 않기 때문이다. 

 

var checknil : Int = nil 	//컴파일 에러가 나면서 돌아가질 않는다!

var checknil2 : Int? = nil

 

때문에 

 

Optional 변수 타입을 사용하기 위해선 optional binding ( if, guard ) 등을 사용해야 한다

이때 반드시 == nil 이나 != nil을 생략해선 안된다.

 

 

var optionStr : String?

func StringToIntConverter(str s : String?){
    if s == nil {
        print("nil 문자열")
       }else{
        print ("Converted Value : \(s!)" )
     }
}


StringToIntConverter(str: optionStr)
StringToIntConverter(str: "212")

다음과 같이 결과값을 가져오기 위해서 Forced Unwarpping ( value ! ) 를 사용해서 결과값을 가져왔다.

 

이에대해 아주 간단히 생각하면 

 

기존 기존 변수타입이 아닌

 

nil이라는 비어있는 값을 할당할 수 있는 변수타입이라고 생각하면 된다.

때문에 해당 변수에서 값을 그냥 추출할 수는 없으므로 Forced Unwapping혹은 Optional Bind를 통한 추출을 해야한다.

 

하지만 신기하게도 입력은 그냥 String 처럼 해도 된다!

반응형

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

[Swift] Swift Optional  (0) 2021.05.01

댓글