Swift3:如何处理优先组现在操作符应该用身体声明?

前端之家收集整理的这篇文章主要介绍了Swift3:如何处理优先组现在操作符应该用身体声明?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
操作符的前Swift 3代码是:
infix operator × {associativity left precedence 150}

但现在,根据Xcode 8 beta 6,这会产生以下警告:

"operator should not be declared with body"

什么是正确的方法来使用优先级组谓词,现在没有文档?

我已经尝试了这个,但不行:

infix operator × : times
precedencegroup times {
     associativity: left 
     precedence: 150
}
根据 SE-0077,运算符的优先级不再由幻数确定 – 而是现在使用higherThan和(如果组驻留在另一个模块中)lowerThan precedencegroup关系,以便定义相对于其他组的优先级。

例如(从evolution proposal):

06000

虽然在你的情况下,看起来你的运算符用于乘法,你可以简单地使用标准库的乘法优先组,它用于*运算符:

infix operator × : MultiplicationPrecedence

它被定义为:

precedencegroup MultiplicationPrecedence {
  associativity: left
  higherThan: AdditionPrecedence
}

有关标准库优先组的完整列表以及有关此更改的更多信息,请参阅evolution proposal

猜你在找的Swift相关文章