Показать сообщение отдельно
Старый 18.05.2018, 12:37
Appleman вне форума Посмотреть профиль Отправить личное сообщение для Appleman Найти все сообщения от Appleman
  № 1  
Ответить с цитированием
Appleman
 
Аватар для Appleman

Регистрация: Dec 2014
Адрес: Санкт-Петербург
Сообщений: 479
По умолчанию Сами объекты и ссылки на них

Друзья, поясните мне, пожалуйста, ещё один момент.

Столкнулся с такой ситуацией. Создаю в неком классе массив, наполняю какими-то элементами. Передаю в конструктор другого класса, которому поручено переписать все элементы полученного массива "к себе" и как-то с ними поработать, но (самое главное!) оставить в целости оригинальный массив, полученный из вне. Но вот такая запись:

Код AS3:
private var _intermalArray: Array = [];
 
public function SomeClass(externalArray: Array)
{
_internalArray = externalArray;
}
как выяснилось, ни фига не делает дубликат массива, а лишь передаёт ссылку. И все изменения отражаются также и в исходном. Так и должно быть? И вообще всегда ли при передаче переменных, содержащих некий объект, передаётся только ссылка на сам объект? Как-то я не чувствую логики.

P.S. Задачу пока что решил через цикл, который последовательно перебирает элементы полученного массива и записывает по одному во внутренний. В таком случае они действительно разными получаются.
__________________
Не сломано - не чини!