Иммутабельность переменной - это достаточно важное свойство. Переменные нужно помечать ключевым словом
let
не просто так. Опустим очевидное, исходящее из определения - неизменяемость. Но что стоит за этим на уровне компилятора? А стоят за этим нужные вещи.
Если мыслить широко, то ключевым словом
let
можно ведь пометить не только, скажем переменную содержащую число, а коллекцию или структуру или объект.
Коллекция, помеченная как неизменяемая, даёт возможность компилятору выделить для неё непрерывную память, что позволит ускорить операцию чтения, в сравнении с обычной, динамической коллекцией. (Именно по этой причине, для особых нужд, в
Swift, есть специальная коллекция
ContiguousArray)
Для изменяемых объектов, компилятору может потребоваться сгенерировать код, который копирует изменяемый объект, когда он используется как свойство другого объекта, а вот для неизменяемых лишнего кода мы не получим.
Сравнение для неизменяемых объектов также может быть оптимизировано компилятором.
Даже у обычных структур, методы которые изменяют поля структуры, нужно помечать ключевым словом
mutable
В свою очередь это делает тоже не просто так.