swift - 运算符重载和运算符函数

让已有的运算符对自定义的类和结构进行运算或者重新定义已有运算符的运算规则,这种机制被称为运算符重载。

1.通过重载加号运算符,使自定义的两个坐标结构体对象实现相加

struct CenterPointer {
    var x = 0, y = 0
}

func + (left: CenterPointer, right: CenterPointer) ->CenterPointer {
    return CenterPointer(x: left.x+right.x, y: left.y+right.y)
}

let pointer1 = CenterPointer(x: 1, y: 3)
let pointer2 = CenterPointer(x: 2, y: 3)
let pointer3 = pointer1 + pointer2
print(pointer3) // 打印结果 CenterPointer(x: 3, y: 6)

2.重载判断运算符,实现判断自定义类型是否相等

func == (left: CenterPointer, right: CenterPointer) ->Bool {
    return left.x == right.x && left.y == right.y
}

func != (left: CenterPointer, right: CenterPointer) ->Bool {
    return !(left == right)
}

3.组合运算符,即将其他运算符和赋值运算符组合在一起,注意要把运算符左参数设置成inout类型

func += (left: inout CenterPointer, right: CenterPointer) {
    left = left + right
}

//var pointer1 = CenterPointer(x: 1, y: 3)
//var pointer2 = CenterPointer(x: 2, y: 3)
//pointer1 += pointer2
//print(pointer1) // 打印结果 CenterPointer(x: 3, y: 6)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容