Это скорее вопрос концепции. Зачем беспокоиться об использовании init
?При написании большого приложения в Swift мне даже нужно использовать метод «init» вообще?
class Person {
var name:String
var height:Double
...
init(name: String) {
self.name = name
self.height:Double
...
}
Почему бы не просто дать все значение по умолчанию?
var name = "Daniel"
var height = 178.0
Таким образом, я также не придется беспокоиться о выборе между обозначенным «удобство» inits, потому что все будет просто наследовать от своего суперкласса. Есть ли причина для использования этого метода init
?
Это позволяет использовать шаблоны кодирования, которые невозможно выполнить с помощью стандартного приложения с инициализацией по умолчанию? Или это по причинам, таким как управление ресурсами/памятью?
Так что, когда вы не установили имя/высоту для нового человека, которого вы хорошо с ним названный 'Даниил', который является« 178 »ростом? –
Если инициализатор не предоставлен программистом, Swift предоставляет инициализатор defalut, который устанавливает объявленное свойство в свое первоначальное объявленное свойство. Свойство должно быть объявлено либо значением nil, либо значением nil. – Khundragpan
Итак, каждый экземпляр 'Person' должен по умолчанию иметь имя Daniel и иметь высоту 178? Это не похоже на хорошую идею.Имея ложные данные по умолчанию, просто приглашает ошибку программиста забыть заполнить эти поля реальными данными, что, по-видимому, должно гарантировать инициализатор в первую очередь. – Hamish