@driverx18

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

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

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

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

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

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

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

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

Войти через центр авторизации
Похожие вопросы