我希望能够添加两个(Int,Int)
元组。所以我定义了
func + (left:(Int,Int), right:(Int,Int)) -> (Int,Int) {
return (left.0 + right.0, left.1 + right.1)
}
但Xcode不高兴,说:
一行上的连续声明必须用';'
分隔
我的中缀操作出了什么问题?
答案 0 :(得分:0)
好的,我保留这个问题,因为其他人可能觉得它很有用,但我找到了答案。事实证明,运营商只能在全球范围内定义 - 至少是xcode告诉我的内容。所以我将+的定义移出了它所在的类,现在一切正常。如果你想在一个结构上定义一个运算符,比如只在一个类中定义,我仍然不确定你做了什么,但是嘿,我只需要Int元组...
答案 1 :(得分:-1)
如果要在类/结构级别定义中缀运算符,则必须将其标记为static
。例如:
struct Foo {
var prop: Int
static func + (lhs: Foo, rhs: Foo) -> Foo {
return Foo(prop: lhs.prop + rhs.prop)
}
}