Базовый CS с нуля
Variables and state: свободное припоминание
Припоминание сильнее перечитывания. На каждый промпт проговори или запиши полный ответ по памяти, прежде чем открыть модельный — именно усилие восстановить модель памяти закрепляет её.
Восстанови хребет юнита по памяти: чем на самом деле является variable, что assignment и mutation делают с ячейкой, что такое состояние и почему копирование примитива отличается от копирования reference.
- 01Что такое variable в терминах имени, binding и ячейки?
- 02Объясни assignment как машинную операцию и почему '=' стоит читать как «получает», а не «равно».
- 03Что такое mutation и чем состояние отличается от истории мутаций?
- 04Сопоставь семантику копирования (по значению) и reference-семантику. Что лежит в ячейке в каждом случае?
- 05Что такое aliasing, почему он вызывает неожиданные баги и как его избежать?
- 06Что именно защищает const и что он НЕ защищает?
Если ты восстановил каждый ответ по памяти, ты держишь хребет юнита: variable — это имя, привязанное (binding) к ячейке, и имя и значение различны; assignment — разрушающая запись, читаемая как «получает»; mutation меняет ячейку на месте, а состояние — снимок всех текущих ячеек; примитивы копируются по значению, а объекты — по reference, что и делает aliasing — и порождаемые им баги — предсказуемыми; а const запечатывает binding, но никогда — содержимое за ним.