Swift中Self的使用

Swift中Self的使用

  1. 用于消除访问属性调用方法时所产生的歧义。
  • 当函数的参数名和自身的属性名同名时,例如:
/*
使用self指明被访问的是自身属性还是参数
*/
class AClass {
    var greeting: String
    init(greeting: String) {
     // 使用self区分属性和参数
        self.greeting = greeting
    }
}
  • 便利构造函数中调用自身的指定构造函数时,例如:
    convenience init() {
        /*
        必须使用self,因为按照二段构造的规则,
        在第一阶段初始化完成之前,
        无法使用self,
        而且由于面向对象语言的特性,
        所有的初始化方法名都是init,
        没有self,系统不知道调用谁的init
        */
        self.init()
        // 进行初始化
    }
  • 闭包中访问自身属性和调用自身方法时,例如:
        UIView.animateWithDuration(0.25) { () -> Void in
            /*
            闭包可能被抛出,其必须知道其中的方法和属性属于谁,
            所以要用self
            */
            self.layoutIfNeeded()
        }
  1. mutating修饰的值类型方法中,修改self属性时,例如:
struct Point {
    var x = 0.0, y = 0.0
    mutating func moveByX(deltaX: Double, y deltaY: Double) {
        self = Point(x: x + deltaX, y: y + deltaY)
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容