我重载了一个操作符,为了能够链接它我添加了:
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
可以解决此问题,打印行现在有效。