Следующий код работает отлично
struct carConfi {
var owner: String?
let brand: String = "BMW"
var currentMile: Double = 2000
}
let tomCar = carConfi()
Однако, если я изменил тип свойства owner
на константу, в инициализаторе будет ошибка:
struct carConfi {
let owner: String? // Change to constant
let brand: String = "BMW"
var currentMile: Double = 2000
}
let tomCar = carConfi() //error: missing argument for parameter 'owner' in call
Я сделал небольшой поиск, оказалось, что это связано с тем, что дополнительные переменные автоматически имеют значение по умолчанию nil
Я полагаю:. Поскольку после установки константы она не может быть изменена, если факультативная константа автоматически получает nil
, то она будет сохранять неизменную nil
, что очень глупо и может против пользователей
Вопрос: Мой колледж не полностью убежден в предположении, он сказал мне, что для этого должно быть больше причин. Я был бы очень признателен, если кто-нибудь сможет это объяснить мне
спасибо