0

Swift では、コンテキストに応じて実装を変更したいカスタム オペレーターを定義することに興味があります。基本的に、私はこれをしたいと思います:

infix operator <-> {} // define the operator <->

次に、私のコードのある時点で:

let <-> : (Int, Int) -> Int = (+)  // say that here, <-> means +
2 <-> 5 // obtain 7

<->コードの他の部分では、別の方法で (そして、おそらく他の引数の型に対しても)定義できるようにしたいと考えています。funcまた、割り当てられた関数自体が実際には外部関数呼び出しから取得されるため、sを宣言したくありません。

Swift 1.2 では、これは<->定数の定義で「Expected pattern」というエラーで失敗します。

私は何を間違っていますか?代替手段は何ですか?

4

2 に答える 2

1

私が思いつくことができる最高のものは次のようなものです:

infix operator <-> {} // define the operator <->

func <-> (lhs:Int, rhs:Int) -> Int {
    return arrowFunction(lhs, rhs)
}

let arrowFunction : (Int, Int) -> Int = (+)

println("\(2 <-> 7)")
于 2015-02-10T17:31:19.493 に答える