@vovaonokhovv

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

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

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

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

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

Похожие вопросы