当我尝试将Math
等POSITIVE_INFINITY
中的默认参数传递给函数时,Haxe编译器会给出一个错误,默认值应该是常量。
例:
package;
class Test {
public function new(time:Float = Math.POSITIVE_INFINITY) {
}
}
上面给出了错误:
参数默认值应该是常量
在ActionScript中,可以实现这些,例如:
public function Test(time:Number = Number.NEGATIVE_INFINITY) { /* ... */ }
public function Test(time:Number = Number.POSITIVE_INFINITY) { /* ... */ }
public function Test(time:Number = Number.MAX_VALUE) { /* ... */ }
public function Test(time:Number = Number.MIN_VALUE) { /* ... */ }
在Haxe,Math.POSITIVE_INFINITY
定义为:
/**
A special Float constant which denotes negative infinity.
**/
static var POSITIVE_INFINITY(default,null) : Float;
由于Haxe没有常数,我认为必须传递一个字面值。或者,是否有一些inline
或final
的组合可以启用此方法签名语法?
目前这是不可行的。
我建议打开一个功能请求,因为它似乎真的是一个合法的用例。