Я хочу понять, как работает инициализатор, если struct содержит частных свойств . У меня есть следующий код:
struct Doctor {
var name: String
var location: String
private var currentPatient = "No one"
}
let drJones = Doctor(name: "Esther Jones", location: "Bristol")
Это выдает ошибку:
Невозможно вызвать инициализатор для типа «Доктор» со списком аргументов
тип '(имя: строка, местоположение: строка)'
Мое предположение: Memeberwise инициализатор по умолчанию содержит частную собственность, которую нельзя вызвать извне.
Но меня смущает следующий код:
struct Doctor {
private var currentPatient = "No one"
}
let drJones = Doctor()
Как это работает ?, не выдает никакой ошибки.