swift中的.self

2021-05-06  本文已影响0人  梁森的简书

有一个Person类

class Person: NSCoding {
    // required
    func encode(with coder: NSCoder) { }
    
    required init?(coder: NSCoder) { }
    
    var name: String?
    init(name: String?) {
        self.name = name
    }
    required init() { }
    
    static func doSth() {
        print("做事情...")
    }
}

实例的.self

Person类的实例的.self还是实例本身

let p = Person()
p.self.name = "sss"
print("name:\(p.name ?? "")")

打印结果:

name:sss

类的.self

Person类的.self还是类本身

Person.self.doSth() // 类型的.self是元类型的值

打印结果:

做事情...

.Type和.self

.Type 是类型,类型的 .self 是元类型的值,类型和值不同,就像Int和1的关系。

上一篇下一篇

猜你喜欢

热点阅读