我有以下代码:
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);
}
}
Here is a link to a try Haxe code
如果我尝试编译这段代码,我会收到一个错误:```重复类字段声明:doAdd````
我的问题是,无论如何在haxe中有两种带有不同签名的方法吗?
答案 0 :(得分: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
的语法有点不同,只有在我理解的情况下才适用于externs。 this thread中有一个例子。