@driverx18

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

Смотрю уроки по свифту, и не совсем понятно, почему зачастую (много разных людей) пишет в основном let, нежели переменные? (Вроде зачастую для распаковки optionalов)
Да, я знаю, что лет это константа, однако я пришел в свифт из php, и там за частую используются как раз переменные, и для особых случаев константы. Let дает профит в памяти, или другие причины какие то?
  • Вопрос задан
  • 597 просмотров
Решения вопроса 2
doublench21
@doublench21 Куратор тега Swift
Иммутабельность переменной - это достаточно важное свойство. Переменные нужно помечать ключевым словом let не просто так. Опустим очевидное, исходящее из определения - неизменяемость. Но что стоит за этим на уровне компилятора? А стоят за этим нужные вещи.

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

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

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

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

Даже у обычных структур, методы которые изменяют поля структуры, нужно помечать ключевым словом mutable В свою очередь это делает тоже не просто так.
Ответ написан
Комментировать
ivanvorobei
@ivanvorobei
iOS разработчик, канал https://t.me/sparrowcode
Компилятор ругнется мол "переменная не изменяется, используйте let". Варнинги должны не нравиться)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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