Swift 面试题
目录

Swift 中 self 属性的作用是什么?

· 约 2 分钟读完 · 第 82 / 196 章

推荐答案

在 Swift 中,self 属性用于引用当前实例对象。它主要用于以下几种场景:

  1. 区分实例属性和局部变量:当实例属性和局部变量同名时,使用 self 可以明确引用实例属性。
  2. 在闭包中捕获当前实例:在闭包中使用 self 可以捕获当前实例,避免循环引用。
  3. 在方法中引用当前实例:在实例方法中,使用 self 可以明确引用当前实例。

本题详细解读

1. 区分实例属性和局部变量

在 Swift 中,当实例属性和局部变量同名时,编译器会优先使用局部变量。为了明确引用实例属性,可以使用 self。

在上面的例子中,self.value 明确引用了实例属性 value,而不是方法参数 value。

2. 在闭包中捕获当前实例

在 Swift 中,闭包是引用类型,如果在闭包中直接使用实例属性或方法,可能会导致循环引用。为了避免这种情况,可以在闭包中使用 self 来捕获当前实例。

在上面的例子中,[weak self] 避免了循环引用,并在闭包中使用 self 来引用实例属性。

3. 在方法中引用当前实例

在实例方法中,self 用于引用当前实例。虽然大多数情况下可以省略 self,但在某些情况下,使用 self 可以使代码更加清晰。

在上面的例子中,self.value 明确引用了实例属性 value,使代码更具可读性。