[Swift] Optional 심화
반응형
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 |
---|
댓글