//: Playground - noun: a place where people can play
import Swift
// optional 값이 '있을 수도 , 없을 수도 있음'
let optionalConstant: Int? = nil
// optional이 아닌 곳에 nil을 할당하면 에러가 발생한다.
// let someConstant: Int = nil
// optional = enum + general
/*
enum Optional<Wrapped> : ExpressibleByNilLiteral {
case none
case some(Wrapped)
}
*/
let optionalValue: Optional<Int> = nil
let optionalValue2: Int? = nil
// Implicitly Unwrapped Optional
// 암시적 추출 옵셔널
var optionalValue3: Int! = 100
switch optionalValue3 {
case .none:
print("This Optional variable is nil")
case .some(let value):
print("Value is \(value)")
}// Value is 100
// 기존 변수처럼 사용 가능
optionalValue3 = optionalValue3 + 1
// nil 할당 가능
optionalValue3 = nil
// 잘못된 접근으로 인한 런타임 오류 발생
// optionalValue3 = optionalValue3 + 1
// ?로 사용하는 사례
var optionalValue4: Int? = 101
switch optionalValue4{
case .none:
print("This Optional variable is nil")
case .some(let value):
print("Value is \(value)")
} // Value is 101
// 기존 변수처럼 사용불가 - 옵셔널과 일반 값은 다른 타입이므로 연산불가 , 에러발생
// optionalValue4 = optionalValue4 + 1
// nil할당 가능
optionalValue4 = nil
'Swift > 기초&문법' 카테고리의 다른 글
스위프트 swift 구조체 (0) | 2018.08.20 |
---|---|
스위프트 swift 옵셔널 추출 (0) | 2018.08.15 |
스위프트 swift 반복문 (0) | 2018.08.14 |
스위프트 swift 조건문 (0) | 2018.08.14 |
스위프트 swift 함수 고급 (0) | 2018.08.14 |