-
[작성중] [Swift] optional unwrapping, 강제추출(forced upwrapping)► Swift 2023. 6. 28. 20:36반응형
두서없이 써논 글입니다!
/* 1. optional unwrapping */ //옵셔널타입 형태 let a:Int? = nil print(a) //nil print(type(of:a)) //Optional<Int> /* 상수a는 Int 자료형이 아닌, Optional Int 자료형이다. 즉, Optional 자료형을 사용하기 위해선 Optional이란 포장지를 까주고 써야 한다. */ // Optional 자료형으로 안까주면..? let a1: Int? a1=4 var myInfo = "내 나이는 \(a1)살 입니다." //"내 나이는 Optional(4)살 입니다." //nil 예제 (optional unwrapping할 필요가 없음.) let a2:Int? = nil print("a==\(a2)") //a==nil let a3:Int? = 4 print("b==\(a3)") //b==Optional(4) /* 2. 강제추출(forced upwrapping) */ //강제추출 연산자 !(느낌표) var myInfo1 = "내 나이는 \(a1!)살 입니다." //"내 나이는 4살 입니다." //nill 주의 let a4:Int? = nil //print(a4!) //err: error: Execution was interrupted, reason: EXC_BREAKPOINT (code=1, subcode=0x18bd55e10). /* 에러가 뜨면 감사한거임 만약 런타임 에러가 나면, 비정상 종료 버그가 생겨버림 */ // nill인지 아닌지 확인하고 쓰면되지만, 현업에선 (optional binding이라는)다른방법으로 쓰니 아래 코드는 이해만하고 넘어가기. var name: String? = "daram" if name != nil{ print("name == \(name!)") //name == daram } else { print("name == nil") } var name1:String? = nil if name1 != nil{ print("name1 == \(name!)") //name == daram } else { print("name1 == \(name1)") //name1 == nil } //참고링크: https://babbab2.tistory.com/16
반응형'► Swift' 카테고리의 다른 글
[작성중] [Swift] playground_코드 연습하는 법 (0) 2023.06.30 [작성중] [Swift] Optional Unwrapping - 옵셔널 바인딩(if let vs guard let) (0) 2023.06.30 [작성중] [Swift] 에러처리 error handling (0) 2023.06.28 [작성중] [Swift] non-optional type, optional type, nil (0) 2023.06.28 [작성중] [Swift] type(of:ㅁ), String, Character 정리 (0) 2023.06.28