라벨이 if let인 게시물 표시

[swift] guard let, if let 차이

이미지
[swift] guard let, if let 차이 Optional 변수를 안전사게 사용하기 위해 방법을 찾던 중 if let과 guard let에 대해 정리하겠습니다. 변수에 값이 올지 않올지 확신할 수 없을 때 Optional을 씁니다. 그러면 Optional 타입의 변수에 값은 어떻게 꺼내어 사용할 수 있을까요? 간단합니다 옵셔널 바인딩을 해서 사용합니다. 값이 올지 안올지 정확히 알 수 없을 때 Optional 타입의 변수 를 사용하는데요 잘 모르는 분들이 이 전 글을 참고 해주세요! 안전하게 Optional 타입의 변수를 Unwrap하기 위해서는 옵셔널 바인딩을 해야하는데요 크게 두 두가지 방법이 있습니다. 바로 if let과 gurad let 입니다. 코드로 보는 예제 다음 예제 코드를 통해 둘의 차이점을 살펴 보겠습니다. func fullName(name:String, rawPrefix:String?){ // if let을 사용했을 경우 if let prefix = rawPrefix { print(prefix+name) } else { print("need prefix") } // guard let을 사용했을 경우 guard let prefix = rawPrefix else { print("need prefix") return } print(prefix+name) } fullName(name: "hyunho", rawPrefix: "Lee") 풀네임을 작성할 때 이름은 필수이지만 성은 언제나 들어오지는 않는 옵션널 한 값 입니다. guard let을 사용하는 경우에 이름만 들어오고 성이 들어오지 않았다면, 이런 케이스는 예외 케이스, 혹은 원하지 않는 상황 이라고 판단합니...

[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...