美文网首页
Swift中的Any 与 AnyObject、AnyClass的

Swift中的Any 与 AnyObject、AnyClass的

作者: Sultan | 来源:发表于2019-08-21 17:58 被阅读0次

Swift有两种匿名类型:Any和AnyObject。

1.AnyObject

是一个成员为空的协议,任何对象都实现了这个协议。它可以指任何类的实例,并且等同id于Objective-C。当您特别想要使用引用类型时,它非常有用,因为它不允许使用任何Swift的结构或枚举。AnyObject当您想要限制协议以便它只能用于类时,也会使用它。

2.Any

是一个空协议集合的别名,它表示没有实现任何协议。所以它可以指任何类,结构或枚举的实例 。你会在Swift中看到这种情况,无论类型是未知的还是以可以有意义地分类的方式混合:

let values: [Any] = [1, 2, "Fish"]

注意:如何可以指定具体类型的话尽量避免使用AnyObject和Any

3.AnyClass

AnyClass是AnyObject.Type的别名而已。

相关文章

网友评论

      本文标题:Swift中的Any 与 AnyObject、AnyClass的

      本文链接:https://www.haomeiwen.com/subject/avmisctx.html