美文网首页
swift - 运算符重载和运算符函数

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

作者: KUANGJUNJIE | 来源:发表于2017-08-09 15:05 被阅读0次

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

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)

相关文章

  • C++ 部分运算符重载

    可重载的运算符 不可重载的运算符和符号 重载运算符为类的成员函数 重载运算符为友元函数 重载赋值运算符 重载流插入...

  • C++面向对象-运算符重载

    运算符重载 运算符重载又称为操作符重载,可以为运算符增加一些新的功能,全局函数和成员函数都支持运算符重载,我们通过...

  • Swift - 运算符重载

    一、定义 在Swift的官方文档中运算符重载叫做运算符函数(Operator Functions)。简单来讲主要实...

  • 4.0 C++远征:重载运算符

    重载运算符 [TOC] 四、重载运算符 ​ 概念 : 给原有运算符赋予新功能。 ​ 本质 : 函数重载。 ...

  • 1.2.15_C++ 关系运算符重载

    C++ 重载运算符和重载函数 C++ 语言支持各种关系运算符( < 、 > 、 <= 、 >= 、 == 等等),...

  • 1.2.17_C++ ++ 和 -- 运算符重载

    C++ 重载运算符和重载函数 递增运算符( ++ )和递减运算符( -- )是 C++ 语言中两个重要的一元运算符...

  • swift重载或自定义操作符

    重载运算符 在Swift中,类和结构体是可以提供现有运算符的自定义实现,也就是重载现有运算符。三元运算符(a?b:...

  • 运算符重载

    运算符重载 运算符重载的本质是函数重载。 语法格式 operator 运算符名称 在一起构成了新的函数名。比如对于...

  • 1.2.19_C++ 函数调用运算符 () 重载

    C++ 重载运算符和重载函数 函数调用运算符 () 可以被重载用于类的对象。当重载 () 时,您不是创造了一种新的...

  • swift中的运算符重载

    在Swift的官方文档中运算符重载叫做运算符函数(Operator Functions),顾名思义就是对已经有的运...

网友评论

      本文标题:swift - 运算符重载和运算符函数

      本文链接:https://www.haomeiwen.com/subject/pfqqrxtx.html