0

我希望能够添加两个(Int,Int)元组。所以我定义

func + (left:(Int,Int), right:(Int,Int)) -> (Int,Int) {
    return (left.0 + right.0, left.1 + right.1)
}

但 Xcode 不高兴,说:

一行上的连续声明必须用';'分隔

我的中缀操作有什么问题?

4

2 回答 2

0

好的,我留下这个问题,因为其他人可能会觉得它有用,但我找到了答案。原来操作符只能在全局范围内定义——至少 xcode 刚刚告诉我的是这样。所以我将 + 的定义移出了它所在的类,现在一切正常。如果你想在一个结构上定义一个运算符,我仍然不确定你会做什么,比如说,它只在一个类中定义,但是嘿,我只需要它来用于 Int 元组......

于 2015-03-28T17:08:08.963 回答
-1

如果要在类/结构级别定义中缀运算符,则必须将其标记为static. 例如:

struct Foo {
    var prop: Int

    static func + (lhs: Foo, rhs: Foo) -> Foo {
        return Foo(prop: lhs.prop + rhs.prop)
    }
}
于 2018-07-26T17:27:14.243 回答