라벨이 unwrap인 게시물 표시

[swift] Optional값 다루기

이미지
[swift] Optional값 다루기 변수의 타입 뒤에 ? 이 붙어있는 데이터를 사용하다가 자꾸 에러가 떠서 검색해보니 Optional이다. Optional에 대해 이번기회에 정리하려 한다. Optional의 구현 Optional은 enum으로 구현되어있다. enum Optional<T> { case none case some(<T>) } optional의 타입은 generic이다. 그러므로 Int, String 등 모든 타입이 들어갈 수 있다. Optional에는 두 종류가 있는데, 하나는 none이고, 나머지 하나는 some(<타입>) 이다. none은 아직 타입이 설정되지 않은 경우이고, some은 선언 된 타입의 값을 가지고 있다. Optional은 enum으로 구현되어 있지만 enum으로 사용하지 않는 이유는 Optional을 사용할 때마다 switch문을 사용하는 방법이 번거롭기 때문이다. switch문을 사용하면 항상 같은 none과 some에 대한 경우를 구현해야하니 코드가 길어질 것이다. 그래서 ?, !, ?? 등으로 Optional을 사용할 수 있게 만든것이다. 아래 예를 들어 Optional의 특징에 대해 설명한다. 거주민의 차 현황에 대해 입력하는 아래와 같은 코드가 있다. var residentName: String = "John" var age: Int = "23" var carNumber: String = "1422" residentName과 age는 모든 사람이 가지고 있지만 carNumber는 없을 수도 있다. 빈칸을 입려할 수 있지만. 값이 없는 상태를 나타내는 nil값을 넣는 방법도 있다. Optional 사용방법 변수의 타입 뒤에 ? 를 붙여준다. 그러면 해당 타입의 데이터를 입력할 수 있고, 아무값도 아닌 nil값을 입력할 수 있다. var carNumber: St