为了账号安全,请及时绑定邮箱和手机立即绑定

Xcode 7.3已弃用“ ++”和“-”运算符

Xcode 7.3已弃用“ ++”和“-”运算符

子衿沉夜 2019-11-28 09:43:15
我正在查看Xcode 7.3注释,并且注意到了这个问题。++和-运算符已被弃用有人可以解释为什么不推荐使用它吗?我说对了,现在在新版本的Xcode中,您将使用它代替++它x += 1;例:for var index = 0; index < 3; index += 1 {    print("index is \(index)")}
查看完整描述

3 回答

?
白衣染霜花

TA贡献1796条经验 获得超10个赞

我意识到,尽管如此,此评论仍未解决问题,可能有人会在寻找一种解决方案,以使这些操作员保持工作状态,这种解决方案可以在底部找到。?


我个人更喜欢++和--运营商。我不同意它们棘手或难以管理的观点。一旦开发人员了解了这些运算符的功能(并且我们正在谈论非常简单的内容),则代码应该非常清楚。


在解释为什么不推荐使用运算符时,提到了它们的主要用途是C风格的for循环。我对其他人一无所知,但我个人根本不使用C风格的循环,在还有其他地方或情况下,++或--运算符是有用的。


我还要提及的是,它varName++返回一个值,因此可以在returnwhile中使用它,而varName += 1不能在其中使用。


对于任何想让这些操作员在这里工作的人,解决方案是:


prefix operator ++ {}

postfix operator ++ {}


prefix operator -- {}

postfix operator -- {}



// Increment

prefix func ++(inout x: Int) -> Int {

    x += 1

    return x

}


postfix func ++(inout x: Int) -> Int {

    x += 1

    return (x - 1)

}


prefix func ++(inout x: UInt) -> UInt {

    x += 1

    return x

}


postfix func ++(inout x: UInt) -> UInt {

    x += 1

    return (x - 1)

}


prefix func ++(inout x: Int8) -> Int8 {

    x += 1

    return x

}


postfix func ++(inout x: Int8) -> Int8 {

    x += 1

    return (x - 1)

}


prefix func ++(inout x: UInt8) -> UInt8 {

    x += 1

    return x

}


postfix func ++(inout x: UInt8) -> UInt8 {

    x += 1

    return (x - 1)

}

prefix func ++(inout x: Int16) -> Int16 {

    x += 1

    return x

}


postfix func ++(inout x: Int16) -> Int16 {

    x += 1

    return (x - 1)

}


prefix func ++(inout x: UInt16) -> UInt16 {

    x += 1

    return x

}


postfix func ++(inout x: UInt16) -> UInt16 {

    x += 1

    return (x - 1)

}


prefix func ++(inout x: Int32) -> Int32 {

    x += 1

    return x

}


postfix func ++(inout x: Int32) -> Int32 {

    x += 1

    return (x - 1)

}


prefix func ++(inout x: UInt32) -> UInt32 {

    x += 1

    return x

}


postfix func ++(inout x: UInt32) -> UInt32 {

    x += 1

    return (x - 1)

}


prefix func ++(inout x: Int64) -> Int64 {

    x += 1

    return x

}


postfix func ++(inout x: Int64) -> Int64 {

    x += 1

    return (x - 1)

}


prefix func ++(inout x: UInt64) -> UInt64 {

    x += 1

    return x

}


postfix func ++(inout x: UInt64) -> UInt64 {

    x += 1

    return (x - 1)

}


prefix func ++(inout x: Double) -> Double {

    x += 1

    return x

}


postfix func ++(inout x: Double) -> Double {

    x += 1

    return (x - 1)

}


prefix func ++(inout x: Float) -> Float {

    x += 1

    return x

}


postfix func ++(inout x: Float) -> Float {

    x += 1

    return (x - 1)

}


prefix func ++(inout x: Float80) -> Float80 {

    x += 1

    return x

}


postfix func ++(inout x: Float80) -> Float80 {

    x += 1

    return (x - 1)

}


prefix func ++<T : _Incrementable>(inout i: T) -> T {

    i = i.successor()

    return i

}


postfix func ++<T : _Incrementable>(inout i: T) -> T {

    let y = i

    i = i.successor()

    return y

}


// Decrement

prefix func --(inout x: Int) -> Int {

    x -= 1

    return x

}


postfix func --(inout x: Int) -> Int {

    x -= 1

    return (x + 1)

}


prefix func --(inout x: UInt) -> UInt {

    x -= 1

    return x

}


postfix func --(inout x: UInt) -> UInt {

    x -= 1

    return (x + 1)

}


prefix func --(inout x: Int8) -> Int8 {

    x -= 1

    return x

}


postfix func --(inout x: Int8) -> Int8 {

    x -= 1

    return (x + 1)

}


prefix func --(inout x: UInt8) -> UInt8 {

    x -= 1

    return x

}


postfix func --(inout x: UInt8) -> UInt8 {

    x -= 1

    return (x + 1)

}

prefix func --(inout x: Int16) -> Int16 {

    x -= 1

    return x

}


postfix func --(inout x: Int16) -> Int16 {

    x -= 1

    return (x + 1)

}


prefix func --(inout x: UInt16) -> UInt16 {

    x -= 1

    return x

}


postfix func --(inout x: UInt16) -> UInt16 {

    x -= 1

    return (x + 1)

}


prefix func --(inout x: Int32) -> Int32 {

    x -= 1

    return x

}


postfix func --(inout x: Int32) -> Int32 {

    x -= 1

    return (x + 1)

}


prefix func --(inout x: UInt32) -> UInt32 {

    x -= 1

    return x

}


postfix func --(inout x: UInt32) -> UInt32 {

    x -= 1

    return (x + 1)

}


prefix func --(inout x: Int64) -> Int64 {

    x -= 1

    return x

}


postfix func --(inout x: Int64) -> Int64 {

    x -= 1

    return (x + 1)

}


prefix func --(inout x: UInt64) -> UInt64 {

    x -= 1

    return x

}


postfix func --(inout x: UInt64) -> UInt64 {

    x -= 1

    return (x + 1)

}


prefix func --(inout x: Double) -> Double {

    x -= 1

    return x

}


postfix func --(inout x: Double) -> Double {

    x -= 1

    return (x + 1)

}


prefix func --(inout x: Float) -> Float {

    x -= 1

    return x

}


postfix func --(inout x: Float) -> Float {

    x -= 1

    return (x + 1)

}


prefix func --(inout x: Float80) -> Float80 {

    x -= 1

    return x

}


postfix func --(inout x: Float80) -> Float80 {

    x -= 1

    return (x + 1)

}


prefix func --<T : BidirectionalIndexType>(inout i: T) -> T {

    i = i.predecessor()

    return i

}


postfix func --<T : BidirectionalIndexType>(inout i: T) -> T {

    let y = i

    i = i.predecessor()

    return y

}


查看完整回答
反对 回复 2019-11-28
  • 3 回答
  • 0 关注
  • 644 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号