如何全局声明一个快速优先级组?

时间:2017-04-24 08:52:12

标签: swift

我重载了一个操作符,为了能够链接它我添加了:

precedencegroup get {associativity: left}
infix operator ~>: get

它完美无缺,除了我必须将上面的代码片段添加到我使用运算符的每个文件中。它是我想要添加到项目中的便捷语法,但现在使用它比使用参数声明方法更麻烦。我怎样才能做到这一点我只需要声明一次优先组?

可重复的例子:

创建一个新的(单一视图应用程序)项目,将以下内容放在Appdelegate.swift中(或在新文件中,相同的结果)

func ~> (left: String, right: String) -> String {
    return ""
}
precedencegroup Get {associativity: left}
infix operator ~>: Get

然后进入Viewcontroller.swift并在viewDidLoad

中添加以下内容
print(""~>""~>"")

Xcode会抱怨"Adjacent operators are in non-associative precedence group 'DefaultPrecedence'",即使操作员已被列入优先组"Get"。 将infix operator ~>: Get行放入Viewcontroller.swift可以解决此问题,打印行现在有效。

0 个答案:

没有答案