正或负无穷大作为Haxe中的默认参数

时间:2014-12-03 21:21:53

标签: parameters constants haxe

当我尝试将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没有常数,我认为必须传递一个字面值。或者,是否有inlinefinal的某种组合可以启用此方法签名语法?

1 个答案:

答案 0 :(得分:4)

目前这是不可行的。

我建议打开一个功能请求,因为它似乎确实是一个合法的用例。

相关问题