Есть такой файл, в нем структура и текстфилды. Почему невозможно присвоить значение текстфилду? И что за топ-левел в данном случае, ведь структура закрыта, а других объектов здесь нет.
Почему не присваивается значение?
Ты на глобальном уровне выполняешь какое-то действие над объектом. Чтобы понять, почему так нельзя - ок - подумай, когда выполнится данный код, если например таких файлов несколько?
Спасибо за ссылку, очень хорошая статья. Но она, увы, написана в основном для тех, кто уже в теме, а для тех кто начинает в этом разбираться вопросов еще остается много. Например, объявлена структура, как в этом примере. Чтобы ее использовать нужно создать экземпляр. Вопрос - где его создавать? Внутри того же файла, где объявлена эта структура или в других файлах? Если в других файлах, то там опять же свои классы и структуры, этот экземпляр делать внутри них или где-то отдельно? Как-то смутно себе это все представляю, вариантов вроде как много и непонятно чем руководствоваться.
В каком смысле несколько? Этой константе значение присваивается только здесь, в других файлах такого нет.
И почему объявить константу на этом уровне возможно, а присвоить этой же константе значение невозможно?
Неверно выразился. Есть у тебя 2 разных файла, в них какие-то действия над объектами. В каком порядке они выполнятся?
Объявить константу можно, потому что это будет просто объявление - объявленная на глобальном уровне величина будет реально создана в ленивом виде лишь при первом обращении к ней.
Никак. На этом уровне нельзя выполнять действия.
В том и суть - Вы можете вводить какие-то единицы кода, например константы, но ничего из этого не будет создано реально, пока не будет откуда-то вызвано.
Ок, объявить константу можно, а присвоить ей значение нельзя. Как тогда присвоить это значение? Написать эту строку в другом файле? И где там это можно сделать - на топ-левеле или внутри класса?
Не въезжаю в эту систему, если класс - это шаблон, то мы должны работать с его экземплярами. Тогда где они создаются, если каждый файл это по сути дела отдельный шаблон?
Вы можете присвоить значение переменной и даже в сложных выражениях через замыкания.
Использовать их можно в других частях программы.
- Консольная программа - точка входа main.swift, все что пишется там будет выполнятся последовательно. Относитесь как к функции main в других языках
- Графическое приложение - бутстрапинг через AppDelegate, затем управление передается контроллеру в раскадровке первому или контроллеру документа.
- Для игровых площадок - файл каждой страницы исполняется последовательно.
Можете написать на почту или еще куда, если хотите, обьясню, но ответ потом сюда обработанный скопировать надо, чтобы не пропало.