티스토리 뷰
반응형
안녕하세요 :) Zedd입니다.
Swift 5.7 변경사항 중 하나인 if let shorthand를 보려고 합니다.
if let foo = foo { .. } 를 사용하여 기존 optional variable를 "숨기는" optional binding은 굉장히 일반적인 패턴인데요.
if let foo = foo 같이 식별자를 두번 써줘야해서
let someLengthyVariableName: Foo? = ...
let anotherImportantVariable: Bar? = ...
if let someLengthyVariableName = someLengthyVariableName, let anotherImportantVariable = anotherImportantVariable {
...
}
이렇게 긴 이름으로 할 때 코드가 장황해지는 경우가 있습니다.
저는 저렇게 같은 이름으로 하는 것도 안좋아해서 ㅎ; 이름도 고민하게 되고 그러다보니 가독성도 떨어지는데요.
if let a = someLengthyVariableName, let b = anotherImportantVariable {
...
}
그렇다고 이렇게 성의없는 이름으로 할 수는 없겠죠.
# if let shorthand for shadowing an existing optional variable
Swift 5.7에서는 Optional Binding에 단축 구문(shorthand syntax)을 도입합니다.
let zedd: String? = "Zedd"
if let zedd { ✅
// zedd가 nil이 아닐때 실행될 코드
}
아래와 같은 것들도 됩니다.
if let foo { ... }
if var foo { ... }
else if let foo { ... }
else if var foo { ... }
guard let foo else { ... }
guard var foo else { ... }
while let foo { ... }
while var foo { ... }
guard도 된다는거!!
다만,
struct Person {
let name: String?
}
let zedd = Person(name: "Zedd")
if let zedd.name { // 🚫 Unwrap condition requires a valid identifier
}
이렇게 인스턴스 안에 있는 멤버 변수를 바로 넣는것은 안됩니다.
벌써 7월이라니..우리 모두 화이팅~~
반응형
'Swift' 카테고리의 다른 글
[Swift 5.7] Type inference from default expressions (0) | 2022.08.05 |
---|---|
[Swift 5.7] Multi-statement closure type inference (1) | 2022.07.09 |
Swift 5.6 ) Introduces existential any (9) | 2022.04.03 |
Swift ) Sequence (1) | 2022.02.05 |
Literal (0) | 2022.01.23 |
TAG
- Git
- swift tutorial
- Combine
- 회고
- swift 공부
- 스위프트 문법
- swift delegate
- FLUTTER
- 피아노
- iOS delegate
- Xcode
- 제이슨 파싱
- np-hard
- SwiftUI
- Swift
- np-complete
- swift3
- UIBezierPath
- WKWebView
- github
- WWDC
- swift sort
- ios 13
- 스위프트
- actor
- fastlane
- swift array
- IOS
- Accessibility
- WidgetKit
글 보관함
반응형
- Total
- Today
- Yesterday