반응형
유형 자리 표시자: 새로운 Swift 5.6 기능 살펴보기
유형 자리 표시자는 최근 Swift 5.6에 도입되었습니다. 새롭고 유용한 Swift 기능에 연락하십시오.

유형 자리 표시자는 최근 Swift 5.6에 도입되었습니다. 예, 강력한 Swift 유형 추론 시스템에 대한 훌륭한 추가 기능입니다. C++에 익숙하다면 auto
예어. 유형 자리 표시자는 거의 똑같다.
let number: _ = 42 // Type placeholder
let anotherNumber = 42
예, Swift는 변수의 유형을 유추할 수 있지만 유형 자리 표시자는 여러 유형이 포함된 유형에 사용됨을 의미합니다. 제네릭. 그것이 그들이 정말로 빛나는 곳입니다.
정기적으로 고려 Result
열거
enum Result<Success, Failure> where Failure : Error {
case success(Success)
case failure(Failure)
}
그리고 우리가 어떤 종류의 복잡한 객체를 가지고 있다면 어떻게 될까요?
var ohMy = [1: [3: (1, 2, 3, "That's a long tuple")]]
생성하려고 하면 Result
~에서 ohMy
컴파일 오류가 표시됩니다.
let result = Result.success(ohMy)
참고: 일반 매개변수
Failure
유추할 수 없었다
브루. 그래서 써야하는데...
let result = Result<[Int : [Int : (Int, Int, Int, String)]], Error>.success(ohMy)
💡 유형 자리 표시자를 사용하여 Swift가 유추할 수 있는 유형을 생략하세요.
유형 자리 표시자 덕분에 아닙니다. Swift는 자체적으로 객체의 유형을 유추할 수 있습니다. 그래서, 우리는 제공해야합니다 Failure
유형만.
let result = Result<_, Error>.success(ohMy) // Nice
이 기능은 컬렉션에도 유용합니다. 열거형 키가 있는 사전이 필요하면 어떻게 합니까?
enum Foo {
case bizz
case bonk
}
let results = [
.bizz: ohMy,
.bonk: ohMy
]
회원에 대한 참조
bizz
컨텍스트 유형 없이는 해결할 수 없습니다.
그래서 이것을 제공하자. 문맥 유형, 하지만 어떻게 기억하니 ohMy
님의 타입이 못생겼나요? 유형 자리 표시자를 사용합시다.
// 🚫
let results:[Foo: [Int : [Int : (Int, Int, Int, String)]]] = [
.bizz: ohMy,
.bonk: ohMy
]
// ✅
let results:[Foo: _] = [
.bizz: ohMy,
.bonk: ohMy
]
더 많은 예
자리 표시자를 포함하는 유형의 예는 다음과 같습니다.
Array // array with placeholder element type
[Int: _] // dictionary with placeholder value type
(_) -> Int // function type accepting a single type placeholder argument and returning 'Int'
(_, Double) // tuple type of placeholder and 'Double'
_? // optional wrapping a type placeholder
'Coding' 카테고리의 다른 글
Python에서 setup.py 파일을 사용하여 코드 공유하는 방법 (0) | 2022.04.28 |
---|---|
Flutter 프리즈드 패키지 사용하는 방법 (0) | 2022.04.26 |
Mac에서 DNS를 플러시하는 방법 – MacOS DNS 캐시 지우기 (0) | 2022.04.21 |
높은 수준의 관점에서 전자 상거래 웹 사이트 디자인하는 방법 (0) | 2022.04.19 |
AugLy를 사용하여 데이터를 보강하는 방법 (0) | 2022.04.18 |