Swift访问控制运算符(五)

2018-11-17  本文已影响0人  chrisdev

1. 访问控制, Swift定义了三级访问控制, 决定了应用程序哪些部分可以访问哪些信息.

    public(公共类): 方法和属性可供App任意部分访问.

    internal(内部): 内部数据只能在定义这些数据的模块内使用, 模块是一个应用程序, 库, 或框架.  internal是默认的访问控制级别. internal可以省略

    private(私有): 只能供声明他的文件访问, 可以防止暴漏信息 

将一个方法或属性声明为public时, APP中所有人都可以看到他

public var publicProperty = 123                    //可供所有人访问

private var privateProperty = 123                  //只能在当前源文件进行访问

private(set) var privateSetProperty = 123    //源文件可读写, 其他文件只可以读取

2. 运算符, Swift内置运算符(+, -, *, /)等, 一个运算符实际上是一个函数, 他接受一个或两个值作为参数, 并返回一个新的值.

func +(left: Int, right: Int) -> Int {

        return left + right

}    //实际上会以无穷递归方式调用自己, 导致app挂起

3. Swift允许重新定义运算符, 以及为新运算符重载已有运算符. 

定义Vector2D对象:

class Vector2D {

        var x: Float = 0.0;        var y: Float = 0.0

        init(x: Float, y: Float) {    self.x = x;    self.y = y;    }

}

如果希望使用+运算符将这两个对象加在一起, 只需提供一个+函数的实现:

func +(left: Vector2D, right: Vector2D) -> Vector2D {

        let result = Vector2D(x: left.x + right.x, y: left.y + right.y)

        return result

}

使用: let first = Vector2D(x: 2, y: 3);        let second = Vector2D(x: 1, y: 2)

let result = first + second        // = (x: 3, y: 5)

上一篇下一篇

猜你喜欢

热点阅读