-
[Swift] Optional Unwrapping - 옵셔널 바인딩(if let)► Swift/문법 2024. 2. 2. 20:02반응형
if, while, guard 3가지 방식으로 옵셔널바인딩을 할 수 있다.
while문은 거의 안쓰이고, if와 guard문을 주로 이용한다.
오늘은 if문을 알아보려고 한다.
if let 메커니즘
▼ 샘플코드
import Foundation func test(_ n: Int) -> Int{ let nilChk:Int? = nil // output: nil if let optChk = nilChk { // when nilChk is not nil print(optChk) // output: 8 print(nilChk) // output: Optional(8) print("-1-") // output: -1- }else{ // when nilChk is nil // print(optChk) // output: err 사용불가 print(nilChk) // output: nil print("-2-") // output: -2- } return 0 } test(8)
1. if let문에서 nilChk이 nil인지 판별한다.
2. nilChk이 nil이 아닌 경우, optChk으로 unwrapping한 값을 보낸다.
3. if let optChk은 if문 내에서만 사용가능하다.
argument 가 optional 또는 Int일 때의 상태
Optional인 상태
import Foundation func test(_ n: Int) -> Int{ let nilChk:Int? = n // output: Optional(8) if let optChk = nilChk { print(optChk) // output: 8 print(nilChk) // output: Optional(8) print("-1-") // output: -1- }else{ print("-2-") } return 0 } test(8)
Optional일 때는 if문의 true(-1-)가 발생하여 리턴된다.
nil인 상태
import Foundation func test(_ n: Int) -> Int{ let nilChk:Int? = nil // output: nil if let optChk = nilChk { print("-1-") }else{ //print(optChk) // output: err print(nilChk) // output: nil print("-2-") // output: -2- } return 0 } test(8)
Optional일 때는 if문의 false(-2-)가 발생하여 리턴된다.
변수명 설정
if문을 쓸때, 두개의 변수를(optChk, nilChk) 똑같이 chk이라고 사용해도된다.
if let optChk = nilChk if let chk = chk
참고링크
https://babbab2.tistory.com/17
Swift) Optional 부수기 (3) Optional Unwrapping - 옵셔널 바인딩(if let vs guard let)
안녕하세요 소들입니다 💀 (헬쓱) 퇴근 후 포스팅은 피곤하네여.. 요즘 회사 일은 Objective-C로 개발하고 포스팅 및 개인 프로젝트는 Swift로 하니까 혼돈의 카오스 옵젝씨 코드에 세미콜론 빼먹어
babbab2.tistory.com
개인적으로 개발시행착오를 겪으면서, 그런 경험들을 기록하기도하고, 모은정보들을 메모하며, 개인공부내용을 공유하는 게시물입니다. 친절한 조언과 다양한 의견 남겨주시고, 소통해주시는분들은 언제든지 환영합니다 :D
반응형