2015-07-17 3 views
0

Я надеюсь, что я не вышел из строя на моем Fisrt пост здесь Я тройной о nooob желающих получить фундаментальные понятия пряморазница между экземпляром и инициализации

я получаю то, что классы все о, но не так ясно на разнице между экземплярами и inits (инициализацый)

Могу ли я думать об этом таким образом ?:

небольшое развитие сайта здание дизайн утвержден. (Blueprint) Это будет класс, конечно

«экземпляр» был бы один блок купил в с завода на грузовике и вытянул в

но будет вполне INIT, когда землемер приходит и колышки вне его пространственного «распределения» на сайте? (Я начал с Objective-C до Swift, и только посмотрел быстро, вы можете сказать) или это что-то еще?

потому что документация Swift мне требует, чтобы объект «var» или «let» нуждался в назначенном значении, он не может быть нулем. это странно, когда я вижу много материала с вещами, как

var X : Int 
let str : String 

Я не вижу ценностей там, они говорят, что они явно хотят видеть X = 5 или Облы = «хлопок»

так таты листы два возможно аналогии для init():

var X : Int // like the building has the bounds set out, it's just not filling the space? 
Var X = 5 // like the building is in place, but still empty and not in habitation 

Не просите ни о каком прекрасном обсуждении, которое является «более правильным»? если таковые имеются

ответ

1

Довольно буквально, «экземпляр» или «инициализация» (то же самое) - это когда вы создаете экземпляр класса. Таким образом, используя подобную метафору, то Class является основой для дома, Initialization (init) это когда стройотряд строит дом, а Instance это готовый дом, что вы живете в.

В вашем примере выше, это было бы var x = 5. Строительная бригада только что построила x и установила ее на 5. Теперь вы можете делать все, что хотите, со своим экземпляром x, например, изменить его на 6. Ваш первый пример, говорящий всем, что x будет Int, - это то, что для Class.

1

Класс - это синяя печать для вашего объекта. НАПРИМЕР. MyObject содержит эти переменные x, y и z и имеет эти методы foo1, foo2, foo3. Экземпляр класса представляет собой экземпляр (создание) одного объекта, который содержит значения для x, y и z и может использовать эти методы foo1, foo2, foo3.

В инициализации класса выполняется любая инициализация, требуемая классом, обычно присваивающая значения переменным построенных объектов, x = 3, y = 4 и z = 5. Все, что вы хотите сделать при построении объекта, должно быть сделано в init.

В быстром, если вы создаете переменную, но не инициализируете ее значением, например. var x: int, и попытайтесь использовать эту переменную, вы получите ошибку компилятора. Объект создается, но не инициализируется. Если вам нужно, чтобы ваша переменная содержала нуль, вы должны использовать необязательный маркер (?), Var x: int? = nil. Переменная x теперь имеет тип необязательный.