T E L : 0 1 0 - 5 1 6 6 3 5 7 3

Swift-postfix 运算符

Swift-postfix 运算符,如何做到在左侧,中间还是右侧执行呢?

时间:2020-05-15

运算符作用位置的说明

// =运算符是中置运算符 var a = 0  // +=同样是中置 a += 1 // ++运算符是右置 a = a++ // --运算符是左置 a = --a

如何做到在左侧,中间还是右侧执行呢?

· 前置运算符:prefix

// 实现oc里面的 -- 运算 prefix func --(x: inout Int) {     x -= 1 } var a = 3  --a

· 后置运算符:postfix

image.png

· 中间运算符:infix

image.png

用以上三个不同的关键词修饰,可以在不同的位置起效果

运算符的重载

对系统的运算符进行重新赋职能。
“=”是不可以进行重载的

struct Vector3 {          var x: Double = 0.0     var y: Double = 0.0     var z: Double = 0.0          func length() -> Double {         return sqrt(x * x + y * y + z * z)     } }  // 重载乘号(* func *(left: Vector3, right: Vector3) -> Double {     return left.x * right.x + left.y * right.y + left.z * right.z }  var vector3 = Vector3(x: 1, y: 2, z: 3) var vector4 = Vector3(x: 2, y: 5, z: -3) vector3 * vector4

自定义运算符

除了标准运算符,Swift还可以声明和实现自定义运算符。
自定义运算符需要在全局作用域通过关键字operator进行定义,同时要指定prefix(前缀)、infix(中缀)或postfix(后缀)修饰符



prefix operator  +++

自定义运算符仅能包含这些字符:/ = - + * % < >& | ^~

作者:刘坤

© 2018 北京青梅睿创科技有限公司 版权所有 翻版必究 京ICP备17050044号-2