1

私は次のコードを持っています:

class Test {
    static function main() {
        trace("Haxe is great!");
        var api:Api = new Api();
        api.doAdd(1,1);
    }
}

class Api {

    public function new(){}

    public function doAdd( x : Int, y : Int ) {
        trace( x + y );
    }

    public function doAdd( x : Int, y : Int , z : Int) {
        trace( x + y + z);
    }
}

これはHaxeコードを試すためのリンクです

このコードをコンパイルしようとすると、次のエラーが発生します。

私の質問は、 haxe で異なる署名を持つ2つのメソッドを持つことはとにかくありますか?

4

1 に答える 1

2

Java および C# ターゲットでは、次のように動作します。

@:overload
public function doAdd(x:Int, y:Int) {
    trace(x + y);
}

@:overload
public function doAdd(x:Int, y:Int, z:Int) {
    trace(x + y + z);
}

他のターゲットでは、の構文@:overloadは少し異なり、私が理解している限り、extern に対してのみ機能します。このスレッドに例があります。

于 2014-08-09T10:08:52.947 に答える