[Swift] (기초) Optional / 옵셔널
2021. 7. 13. 01:44ㆍ🍏/Swift 기초 공부
값이 '있을 수도, 없을 수도 있음'
옵셔널이 아닌값에 nil을 할당시 에러가 난다.
옵셔널이 필요한 이유
nil의 가능성을 명시적으로 표현
닐이 들어올 수 있다. 닐이 들어올 수 없다를 명확히 해줌.
- nil 가능성을 문서화 하지 않아도 코드만으로 충분히 표현가능
- 문서/주석 작성 시간을 절약
- 전달받은 값이 옵셔널이 아니라면 nil체크를 하지 않더라도 안심하고 사용
- 효율적인 코딩
- 예외 상황을 최소화하는 안전한 코딩
func someFunction(someOptionalParam: Int?){
}
func someFunction(someParam: Int){
}
//someFunction(someParam: nil) 닐이 들어올 수 없다.
someFunction(someOptionalParam: nil)
// Optional
// enum + general
//enum Optional<Wrapped>: ExpressibleByNilLiteral{
// case none
// case some(Wrapped)
//}
//
//let optionalValue: Optional<Int> = nil - 완전한 문법
//let optionalValue: Int? = nil - 간략
//Implicitly Unwrapped Optional 암시적 추출 옵셔널
//var optionalValue: Int! = 100
//switch optionalValue {
//case .none:
// print("This Optional variable is nil")
//case .some(let value):
// print("Value is \(value)")
//}
//
//// 기존 변수 처럼 사용 가능
//optionalValue = optionalValue + 1
//// nil 할당 가능
//optionalValue = nil
//// 잘못된 접근으로 인한 런타임 오류 발생 (nil에 +1)
//optionalValue = optionalValue + 1
//Optional 일반적인 옵셔널
//var optionalValue: Int?
//
//switch optionalValue {
//case .none:
// print("This Optional variable is nil")
//case .some(let value):
// print("Value is \(value)")
//}
//
//// nil 할당 가능
//optionalValue = nil
//
//// 기존 변수처럼 사용불가 - 옵셔널과 일반 값은 다른 타입이므로 연산불가 (집합,교환 등 모두 제한)
//optionalValue = optionalValue + 1
'🍏 > Swift 기초 공부' 카테고리의 다른 글
[Swift] (기초) Sturct / 구조체 (0) | 2021.07.16 |
---|---|
[Swift] (기초) Optional Unrapping / 옵셔널 언래핑 (0) | 2021.07.16 |
[Swift] (기초) 조건문 / 반복문 (0) | 2021.07.13 |
[Swift] (기초) 함수 (0) | 2021.07.12 |
[Swift] (기초) 컬렉션 타입 (0) | 2021.07.04 |