🫥 옵셔널 🫥
- 옵셔널 개념
- 옵셔널 타입 선언과 정의
- 옵셔널 값 처리
ex)
//옵셔널 Int 타입
var optInt : Int?
//옵셔널 String 타입
var optStr : String?
var optInt : Int? = 3
print("옵셔널 자체 값: \(optInt)") //Optional(3)
print("옵셔널 강제 해제 값: \(optInt!)") //3
Q. 그럼 그냥 모든 옵셔널 타입 변수를 강제 해제 해서 사용하면 안 돼...? 🤔
A. 값이 nil인 옵셔널 변수에 !를 붙이면 오류가 발생함! 그러면 옵셔널 타입을 사용하는 이유가 없잖아,,,
var optName: String? = "mini"
if let safeName = optName {
print("값이 변환되었습니다. 변환된 값은 \(safeName)" 입니다. )
} else {
print("값 변환에 실패하였습니다.")
}
//출력: 값이 변환되었습니다. 변환된 값은 mini
✏️ if let
사용 시, 해당 블록 안에서만 사용이 가능하다.
var optName: String? = "mini"
guard let safeName = optName else { return }
print(safeName)
//출력: mini
✏️ guard let
사용 시, guard let
구문 밖에서도 할당한 상수를 자유롭게 이용할 수 있다. print(safeName)
처럼!
let tempInt = Int("123") //true
tempInt == 123 //true
tempInt == Optional(123) //true
tempInt! == 123 //true
tempInt! == Optional(123) //true
var str: String != "Swift Optional"
print(str)
// 출력: Swift Optional
출처: 꼼꼼한 재은씨의 Swift 문법편