SwiftUI Swift内功之Swift 中的 some vs any
生活随笔
收集整理的這篇文章主要介紹了
SwiftUI Swift内功之Swift 中的 some vs any
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
介紹
some
- 持有混凝土類型
- 保證類型關系
any
- 持有任意具體類型
- 擦除類型關系
#正文
在本文中,我總結了 WWDC 2022 關于“some”和“any”的會議內容。
代表特定具體類型的占位符的抽象類型稱為不透明類型opaque type。被替換的具體具體類型稱為基礎類型underlying type。
對于具有 opaque 類型的值,底層類型對于值的范圍是固定的。這樣,使用該值的通用代碼保證每次訪問該值時都獲得相同的底層類型。
使用“some”關鍵字的類型和尖括號中的命名類型參數都聲明了不透明類型。
some Animal <T: Animal>不透明類型可用于輸入和輸出,因此可以在參數位置或結果位置聲明它們。功能箭頭是這些位置之間的分界線。不透明類型的位置決定了程序的哪一部分看到了抽象類型,而程序的哪一部分決定了具體類型。
命名類型參數總是在輸入端聲明,所以調用者決定底層類型,實現使用抽象類型。
func getValue<T>(Parameter) -> Result通常,為不透明參數或結果類型提供值的程序部分決定了底層類型,而使用該值的程序部分看到了抽象類型。因為基礎類型是從一個值推斷出來的,所以基礎類型總是來自與值相同的位置。對于局部變量,底層類型是從賦值右側的值推斷出來的。
let animal: some Animal = Horse()這意味著具有 opaque 類型的局部變量必須始終具有初始值&
總結
以上是生活随笔為你收集整理的SwiftUI Swift内功之Swift 中的 some vs any的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pol-tl导出word
- 下一篇: 10 款开源工具