共计 840 个字符,预计需要花费 3 分钟才能阅读完成。
简略说说 Swift 中的 self 和 Self。
总结下就是:
self 是在实例办法或闭包中援用以后实例的关键字。
Self 是在协定中援用遵循该协定的类型自身的关键字。
self:在一个实例办法或闭包中,self 是一个非凡的关键字,用于援用以后实例。它指代以后实例对象,能够用于拜访和操作实例的属性、办法和下标等成员。
class MyClass {
var name: String
init(name: String) {self.name = name}
func printName() {print("My name is \(self.name)")
}
}
let obj = MyClass(name: "John")
obj.printName() // 输入 "My name is John"
在上述示例中,self.name
援用了类中的属性 name
,而 self
代表以后实例本身。
Self:在协定中,Self 是一个非凡的关键字,用于援用遵循该协定的类型自身。它以大写字母结尾,示意类型自身,而不是特定的实例。
protocol Printable {static func printSomething()
}
class MyClass: Printable {static func printSomething() {print("Printing something")
}
}
MyClass.printSomething() // 输入 "Printing something"
在上述示例中,Self
用作协定 Printable
中的关联类型,它示意遵循该协定的理论类型(例如 MyClass
)。在协定中,Self
示意理论实现该协定的类型。
罕用例子就是如果在一个类中定义了动态属性和办法,动态属性和静态方法是间接属于类自身,所以在外部能够间接应用 Self 来调用,在内部则应用类名调用。
class Student {
static var myAge = 20
static func printAge() {print(Self.myAge)
}
}
Student.printAge() // 输入 20
正文完