在 swift 3.0,官方删除了 ++ 和 -- 操作。虽然还有 += 和 -= 可以使用,但用起来不怎么痛快。为了用的痛快,我们可以根据自定义操作符自己实现。
C语言中,++ 和 -- 作为一元操作符是分为前缀和后缀的。 前缀:先 +1 操作,再返回处理后的数 后缀:先返回当前数,再进行 +1 操作 '--'同理可得。
前缀操作符很简单,inout 修饰之后直接返回 += 的操作就可以了,后缀的时候思路有点困住。 经过思考,想了一个临时值的方法,当前数还是使用 inout 修饰进行+=操作,返回则返回 temp 值。
'++' 实现如下
postfix operator ++
postfix func ++(lhs: inout Int) -> Int {
let temp = lhs
lhs += 1
return temp
}
prefix operator ++
prefix func ++(lhs: inout Int) -> Int {
lhs += 1
return lhs
}
复制代码
效果如下图
同理 '--' 实现如下
postfix operator --
postfix func --(lhs: inout Int) -> Int {
let temp = lhs
lhs -= 1
return temp
}
prefix operator --
prefix func --(lhs: inout Int) -> Int {
lhs -= 1
return lhs
}
复制代码
如果有更好的后缀操作符实现方法还请不吝指导~