Swift学习笔记-运算符重载

参考书籍:
[1]管蕾.张玲玲.朱元波.Swift开发实战[M]. 北京:人民邮电出版社.2014.10-1 ISBN 978-7-115-36827-0
[2]陈隽.刘媛媛.Swift入门很简单[M]. 北京:清华大学出版社.2015.01-01 ISBN 978-7-302-38880-7

运算符重载其实是一种特殊的函数。特让已有的运算符也可以对自定义的类和结构进行运算。

一、算术运算符重载

算数运算符分为+、-、*、/ 四种,其都属于中置运算符,重载语法形式:

例如自定义”+”加法运算符重载。

终端如下:

10.0
9.9
Program ended with exit code: 0

二、一元减/加运算符重载

操作数前加一个”-“好,此符号被叫做一元减操作符,作用是将正数变成负数,负数变正数。一元加操作符无实际作用。

1、一元减操作符重载

例如,一元减运算符重载:

终端:

-3.0
-1.0
Program ended with exit code: 0

三、复合赋值运算符重载

语法形式:

注意:

1、需要将运算符左参数设置成inout,这个参数会在运算符重载函数内直接修改其值。

2、运算符inout不可缺少

3、需要定义相关运算符重载,如定义”+=”,还需定义”+”假发运算符。

例如:

终端如下:

10.0
9.9
Program ended with exit code: 0

四、自增自减运算符重载

 

自增自减运算符都分为前缀运算符和后缀运算符重载。

1、前缀自增运算符重载

语法形式:

注意:prefix 表示此运算符重载是前缀的,参数名前需要设置inout

终端:

8.0
9.9
Program ended with exit code: 0

2、后缀自增运算符重载

语法形式:

 

终端:

8.0
9.9
Program ended with exit code: 0

五、比较运算符重载

1、”==”相等运算符重载

语法形式:

六、自定义运算符重载

自定义运算符分为前置、中置、后置三种

1、前置自定义运算符

定义形式:

重载形式:

例如:自定义一个”***”运算符,实现结构属性平方

终端如下:

4.0
4.0
Program ended with exit code: 0

 

2、中置自定义运算符

定义形式:

重载形式:

3、后置自定义运算符

定义形式:

重载形式:

4、自定义运算符优先级和结合性

4.1优先级

运算符优先级可以让一些运算符优先于其它运算符执行,高优先级运算符会先执行。自定义优先级语法形式如下:

注意:优先级只能定义在中置运算符中,且两种自定义优先级不可以相同。

4.2结合性

结合性定义相同优先级运算符一起时怎么组合或关联,语法形式:

结合性值有left、right、none

 

Print Friendly
赞 (0)
分享到:更多 ()

留言板 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址