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 款开源工具