Swift 元类型、AnyClass、Self
我们来看⼀下下⾯这段代码的区别:
var t = LGTeacher()
//此时代表的就是当前 LGTeacher 的实例对象
var t1: AnyObject = t
//此时代表的就是 LGTeacher 这个类的类型
var t2: AnyObject = LGTeacher.self
- AnyObject: 代表任意类的instance, 类的类型,仅类遵守的协议
- Any: 代表任意类型,包括funcation 类型或者 optional 类型
- AnyClass: 代表任意实例的类型:AnyObject.Type
- T.self: 如果 T 是实例对象,返回的就是它本身,T 是类,那么返回的是 Metadata
- T.Type: 一种类型,T.self 是 T.Type 类型
- type(of:): 用来获取一个值的动态类型