В Actionscript 3.0 (и я предполагаю, что Javascript и ECMAScript в целом) отсутствует передача по ссылке для нативных типов, таких как int. В результате я считаю, что получение значений из функции действительно неуклюже. Каков нормальный шаблон, чтобы обойти это?
Например, есть ли чистый способ реализовать swap( intA, intB ) в ActionScript?
Решение проблемы
Я считаю, что лучшее, что вы можете сделать, это передать объект-контейнер в качестве аргумента функции и изменить значения некоторых свойств в этом объекте:
function swapAB(aValuesContainer:Object):void
{
if (!(aValuesContainer.hasOwnProperty("a") && aValuesContainer.hasOwnProperty("b")))
throw new ArgumentError("aValuesContainer must have properties a and b");
var tempValue:int = aValuesContainer["a"];
aValuesContainer["a"] = aValuesContainer["b"];
aValuesContainer["b"] = tempValue;
}
var ints:Object = {a:13, b:25};
swapAB(ints);
Комментариев нет:
Отправить комментарий