Swift 옵셔널

Y3SUNG·2022년 6월 8일
1
post-thumbnail

스위프트는 안전한 코드를 작성할 수 있게 도와준다

그래서 nil이라는 것이 있고 흔히 다른 언어에서는 null이라고 불린다.

그렇다면 nil은 어떻게 사용할 수 있을까?

옵셔널을 사용하여 nil을 다룬다

옵셔널은 nil이나 nil이 아닌 값만 가지고 있을 수 있고

자료형 뒤에 물음표를 붙혀서 ( 예 : var num: Int? = nil ) 옵셔널 타입으로 만들 수 있다.

옵셔널은 일반 변수처럼 사용(계산 등)을 할 수 없다. ( 기본 타입과는 다른 옵셔널 타입으로 감싸져? 있기 때문에 )

그렇다면 옵셔널을 변수처럼 사용하는 방법은 무엇일까?

옵셔널 바인딩

옵셔널 바인딩은 if-let문을 사용하여 조건문 내에서 상수에 옵셔널 값을 할당하여 조건문을 사용하는 방식이다.

(상수에 옵셔널을 대입했을 경우 값은 true/false 로 반환된다)

var myname: String? = nil

if let name: String = myname {
    print("my name is \(name)")
} else {
    print("i don't have name..")
}

// i don't have name..

해당 코드는 myname에 nil 값이 들어있고

if-let 문을 이용해서 상수 name에 myname을 할당하여서 false 값이 반환되기 때문에

else 문이 실행되면서 “i don’t have name..” 이라는 문장이 프린트 되게 된다.

강제 해제

옵셔널 타입 뒤에 물음표가 아닌 느낌표를 붙혀주면 값이 nil이 아닐 때 일반 변수처럼 사용이 가능하다.

값이 nil일때 사용하게 된다면 오류가 일어나니

if문을 사용해서 값이 nil인지 아닌지 확인 후 사용하도록 하자

var myname: String? = "yesung"

print("my name is \(myname)")  // my name is Optional(yesung)
print("my name is \(myname!)") // my name is yesung

myname = nil
print("my name is \(myname!)") // error
profile
자바칩 프라푸치노

0개의 댓글