栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在泛型中使用类型变量

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在泛型中使用类型变量

Swift的静态类型意味着
必须在编译时知道变量的类型。

在泛型函数的上下文中

func foo<T>() { ... }
,T看起来像
一个变量,但实际上它的类型是在编译时根据
函数从何处调用而已知的。的行为
Array<T>()
取决于T,但是
此信息在编译时是已知的。

使用协议时,Swift使用动态调度,因此您可以编写代码

Array<MyProtocol>()
,并且数组仅存储对
实现的对象的引用MyProtocol—因此,当您从数组中获取内容时,您可以
访问所需的所有函数/变量/类型别名MyProtocol。

但是if t实际上是一个kind 变量

Any.Type,Array<t>()

没有意义的,因为它的类型实际上在编译时是未知的。(由于
Array是通用结构,因此编译器需要知道将哪种类型用作
通用参数,但这是不可能的。)

我建议今年观看WWDC的一些视频:

Swift中面向协议的编程
在Swift中使用值类型构建更好的应用
我发现这张幻灯片对理解协议和



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/469118.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号