@vovaonokhovv

Иммутабельность в Elixir?

Данные в Elixir не могут быть изменены.
Каждая функция возвращает новую версию входных данных. Необходимо ввести новые переменные для хранения измененных значений или заново привязать их к тому же символьному имени.
В любом случае, результат будет помещен в другую область памяти. Некоторые данные будут скопированы, но в основном старая и новая версии будут разделять общую память.

Правильно ли я понимаю, что в куче просто создастся новый участок памяти, который будет указывать на переменную, вместо того чтобы изменить значение в прошлом участке памяти? Просто немного не до конца понимаю, как это все работает. Можете подсказать пару статей?
  • Вопрос задан
  • 50 просмотров
Решения вопроса 1
vabka
@vabka
Токсичный шарпист
Правильно ли я понимаю, что в куче просто создастся новый участок памяти, который будет указывать на переменную, вместо того чтобы изменить значение в прошлом участке памяти?

Да + иногда может переиспользоваться старая память, если других ссылок больше нет на неё.
В любом случае с точки зрения человека данные не меняются.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
18 апр. 2024, в 07:58
500 руб./в час
18 апр. 2024, в 07:22
45000 руб./за проект
18 апр. 2024, в 01:12
150000 руб./за проект