swiftswift

swift中Anyobject、self、Any和AnyClas

2022-01-26  本文已影响0人  余晖依旧耀眼

1、Anyobject

代表任意类的实例,类的类型

Anyobject.png

当定义一个协议,只想让类去遵循,可以用Anyobject

Anyobject协议.png

当不知道具体类型的时候,可以用用Anyobject表示;当确定了具体类型之后,就可以用关键字as转换成具体的类型。

as类型转换.png

如果你不确定p是不是Worker就可以用as?来进行类型转换,转换是失败p2就是nil。

2、self

T.self:T是实例对象,当前T.self返回的就是实例对象本身;T是类,当前T.self返回的就是元类型

T.self.png

在方法中的self

方法中的self.png

在实例方法中self是实例对象的本身;在类方法中self是类型本身。

3、Self

Self类型不是特定类型,而是为了方便引用当前类型,而无需重复或知道该类型的名称。在协议声明或者协议成员声明中,Self类型是指最终符合协议的类型。

Self作为方法的返回值

方法的返回值.png

Self在协议中代表遵循协议的类型

协议中.png

Self在类中代表类型本身

image.png

4、Any

代表任意类型,包括funcationOptional类型,比Anyobject代表的更广。

Any和Anyobject.png

可以用Any来表示包含不同类型的数组

5、AnyClass

代表任意实例的类型,是AnyObject.Type类型

AnyClass.png 应用.png

6、获取动态类型

静态类型,在编译期确定的;动态类型,在运行期确定的。

获取动态类型.png

可以通过type(of:T)来获取动态类型

上一篇下一篇

猜你喜欢

热点阅读