Ответ 1
Вы не можете назначить переменную let более одного раза, однако вы можете определить ее и оставить ее неинициализированной. Затем в вашем методе init
вы можете иметь "nobody"
как значение по умолчанию для аргумента agent
.
class Actor {
let agent: String
init(agent: String = "nobody"){
self.agent = agent
}
}
print(Actor().agent) // "nobody"
print(Actor(agent: "xyz").agent) // "xyz"
Как предложил Александр в комментариях ниже, если у вас слишком много аргументов в методе init, значения по умолчанию могут немного запутаться. Рассмотрим создание отдельного метода init, который устанавливает значения по умолчанию.
class Actor {
let agent: String
...
init() {
self.agent = "nobody"
...
}
init(agent: String, ...){
self.agent = agent
...
}
}