18/305 sprint 2 Что я изучила сегодня: Уровни доступа и инициализаторы в Swift 🎀Уровни доступа
В Swift для свойств и функций, определённых в теле структуры, можно задавать различные уровни доступа:
public: Свойства или функции видны всегда и везде.
internal: Свойства или функции видны только внутри данного модуля компиляции. Это значение по умолчанию для свойств и функций внутри структуры, поэтому явное указание этого уровня считается избыточным.
private: Свойства или функции доступны только внутри тела структуры.
fileprivate: Свойства или функции доступны только внутри данного Swift-файла.
Эти уровни доступа помогают управлять видимостью и защищать данные, что делает код более безопасным и организованным.
🎀Инициализаторы
Инициализатор в Swift — это специальная функция с названием init, которая:
Принимает 0 или более параметров.
Присваивает всем неопциональным свойствам структуры начальное значение.
Инициализатор называют «псевдо-функцией», так как при вызове не используется ключевое слово func. Вместо этого можно использовать имя типа. Например:
var adminUser = User(id: 1, login: "admin@service.com", name: "Admin")
По умолчанию Swift генерирует для каждой структуры дефолтный инициализатор, который принимает столько же аргументов, сколько у свойств у структуры. Если мы определяем свой собственный инициализатор, то дефолтный больше не создаётся.
Вот пример структуры User с кастомным инициализатором:
struct User { let id: Int let login: String var name: String
init(id: Int, login: String) { self.id = id self.login = login self.name = login.capitalized } }
Создавая экземпляр структуры, мы можем сделать это следующим образом:
var adminUser = User(id: 1, login: "admin") // Создаст пользователя с id = 1, login = "admin" и name = "Admin"