ActionScript Определение массива статических констант - PullRequest
0 голосов
/ 21 мая 2010

не возможно определить статический константный массив? я хотел бы иметь необязательный параметр для функции, которая представляет собой массив цветов,

private static const DEFAULT_COLORS:Array = new Array(0x000000, 0xFFFFFF);

public function myConstructor(colorsArray:Array = DEFAULT_COLORS)
{
}

я знаю, что могу использовать ... args, но на самом деле я хотел предоставить конструктору 2 отдельных массива в качестве аргументов опции.

1 Ответ

3 голосов
/ 21 мая 2010

Не возможно, но вы могли бы это симулировать это поведение:

private static const DEFAULT_COLORS:Array = new Array(0x000000, 0xFFFFFF);

public function myConstructor(colorsArray:Array = null)
{
    colorsArray = colorsArray ? colorsArray : DEFAULT_COLORS;
}

Это не будет работать, если ваша функция закодирована таким образом, что null может быть допустимым значением (например, для обозначения какого-либо условия), но, возможно, это не так.

Редактировать

Если вы планируете писать в colorsArray в myConstructor, было бы разумно сделать копию DEFAULT_COLORS здесь:

colorsArray = colorsArray ? colorsArray : DEFAULT_COLORS.slice();

Ссылка на массив DEFAULT_COLORS является постоянной, но ее содержимое не является неизменным, поэтому вы можете случайно изменить значения по умолчанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...