프로그래밍 [KOR]/Swift
Swift의 옵셔널
Ji-nun
2018. 10. 4. 16:09
1. 옵셔널의 뜻
•값이 있을 수도, 없을 수도 있음을 표현
•nil이 할당될 수 있는지 없는지 표현
1 2 3 4 5 6 7 8 9 10 11 | // optionalParam에 nil이 할당될 수 있음 func funciton(optionalParam:Int?) { // .... } // optionalParam에 nil이 할당될 수 없음 func function(optianlParam:Int) { // .... } function(optionalParam: nil) | cs |
2. 옵셔널을 쓰는 이유
•명시적 표현
1. nil의 가능성을 코드만으로 표현가능
2. 문서/주석 작성 시간 절약
•안전한 사용
1. 전달받은 값이 옵셔널이 아니라면 nil 체크를 하지 않고 사용가능
2. 예외 상황을 최소화 하는 안전한 코딩
3. 효율적 코딩
3. 옵셔널 문법과 선언
•옵셔널 문법 = enum + general
•옵셔널 선언
1 2 3 4 5 6 7 | enum Optional<Wrapped>:ExpressibleByNiliteral { case none case some(Wrapped) } let optionalValue: Optional<Int> = nil let optionalValue: Int? = nil | cs |
•옵셔널 표현
1. 느낌표(!)를 이용한 암시적 추출 옵셔널
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | //Implicitly Unwrapped Optional var implicitlyUnwrappedOptionalValue: Int! = 100 switch implicityUnwrappedOptionalValue { case .none: print("This Optional variable is nil") case .some: print("Value is \(value)") } // 기존 변수처럼 사용 가능 implicitlyUnwrappedOptionalValue = implicitlyUnwrappedOptionalValue + 1 // nil 할당 가능 implicitlyUnwrappedOptionalValue = nil // 잘못된 접근으로 인한 런타임 오류 발생 // implicitlyUnwrappedOptionalValue = implicitlyUnwrappedOptionalValue + 1 | cs |
2. 물음표(?)를 이용한 옵셔널
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | // Optional var optionalValue: Int? = 100 switch optionalValue { case .none: print("This Optional variable is nil") case .some(let value): print("Value is \(value)") } // nil 할당 가능 optionalValue = nil // 기존 변수처럼 사용불가 - 옵셔널과 일반 값은 다른 타입이므로 연산불가 // optionalValue = optionalValue + 1 | cs |
❖출처: http://blog.yagom.net/
제 나름대로 생각을 정리하며 포스팅합니다.
정보전달에 있어 차질이 생기는 것을 우려해 나름대로 확실하게 검증을 하고 포스팅하려고 노력합니다.
본 포스팅에 잘못된 정보가 있거나 수정해야할 내용이 있다면 댓글 또는 아래의 이메일로 알려주시면 감사하겠습니다.
E-mail : silent_lhr@naver.com
공감은 로그인이 필요없습니다.
공감은 저에게 포스팅을 이어나갈 수 있는 힘이 됩니다.