swift ++ 运算符实现

354 阅读1分钟

在 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
}

如果有更好的后缀操作符实现方法还请不吝指导~