• Почему в Swift вижу чаще использование let, чем var?

    doublench21
    @doublench21 Куратор тега Swift
    Иммутабельность переменной - это достаточно важное свойство. Переменные нужно помечать ключевым словом let не просто так. Опустим очевидное, исходящее из определения - неизменяемость. Но что стоит за этим на уровне компилятора? А стоят за этим нужные вещи.

    Если мыслить широко, то ключевым словом let можно ведь пометить не только, скажем переменную содержащую число, а коллекцию или структуру или объект.

    Коллекция, помеченная как неизменяемая, даёт возможность компилятору выделить для неё непрерывную память, что позволит ускорить операцию чтения, в сравнении с обычной, динамической коллекцией. (Именно по этой причине, для особых нужд, в Swift, есть специальная коллекция ContiguousArray)

    Для изменяемых объектов, компилятору может потребоваться сгенерировать код, который копирует изменяемый объект, когда он используется как свойство другого объекта, а вот для неизменяемых лишнего кода мы не получим.

    Сравнение для неизменяемых объектов также может быть оптимизировано компилятором.

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