当我尝试将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
的某种组合可以启用此方法签名语法?
答案 0 :(得分:4)
目前这是不可行的。
我建议打开一个功能请求,因为它似乎确实是一个合法的用例。