2015-08-12 3 views
0

Я хочу объявить некоторые переменные в начале класса и изменить их значения позже и в другом месте. Я бы предпочел не присваивать им первоначальную ценность мусора, чтобы держать вещи краткими.Инициализация Swift Variable с помощью экземпляра типа

Можно ли объявить переменные основных типов, объявив их экземплярами типа? Пример того, что я имею в виду это:

class foo() { 
    var isCool = Bool() 
    var someInteger = Int() 

    func gotTheFunc() -> Bool { 
     isCool = true 
     return isCool 
    } 
} 

Компилятор позволяет мне сделать это, но это то, что я на самом деле можно/нужно делать при объявлении свойства класса, как это?

Спасибо!

ответ

1

Вы должны установить свойства в методе init, тогда вам не нужно присваивать значение при объявлении. Например:

init(someInt: Int, isCool: Bool) { 
    self.isCool = isCool 
    self.someInteger = someInt 
} 

Ключевое слово self не обязательно, но дает понять, что является свойством класса.

+0

Да, я знаю, что, но что, если я не хочу свойство иметь начальные значения на всех? – Bachyard

0

Вы можете сделать это, но при объявлении переменных с основными инициализаторами типа

var isCool = Bool() 
var someInteger = Int() 

компилятор делает это

var isCool = false 
var someInteger = 0 

Если вы хотите объявить переменные без значения, вы должны использовать УСТРОЙСТВО

var isCool : Bool? 
var someInteger : Int? 

, но я избежал бы опций по возможности.

Side Примечание: имена классов должны всегда начинать с заглавной буквой

class Foo {} 
+0

О, ладно. Таким образом, Swift имеет значения по умолчанию для базовых типов. Что касается читаемости, кажется, что это гораздо приятнее и более сжатый способ объявить свойства. Если мне не нужно инициализировать эти переменные с определенным значением, то можно просто позволить компилятору выполнить инициализацию для вас. – Bachyard

Смежные вопросы