Положительная или отрицательная бесконечность как параметр по умолчанию в 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 нет констант, я предполагаю, что необходимо передать литерал. Или существует комбинация inline или final, которая включила бы этот синтаксис сигнатуры метода?


person Jason Sturges    schedule 03.12.2014    source источник


Ответы (1)


На данный момент это невозможно.

Я предлагаю открыть запрос функции, поскольку он действительно кажется законным вариантом использования.

person Franco Ponticelli    schedule 04.12.2014