seven? = 7
eight! = 8
let foo: String! = "зуб даю что эта переменная содержит значение, и восклицательный знак указывает на это"
print(foo) // тут восклицательный знак не нужен ибо мы уверены
var bar: String? = "переменная может содержать значение, а может и не содержать, знак вопроса на это указывает"
print(bar!) // восклицательный знак нужен для доступа к значению такой переменной
class MyClass {
let myConst = "тут не оборачиваем, ибо значение будет сразу при инициализации класса, инфа соточка"
var myFoo = "тут - тоже будет, по этому не оборачиваем"
// а тут нет значения при инициализации класса -> будет ошибка.
var myBar: String
// придется - либо оборачивать и тут... и в дальнейшем,
var myBar: String?
// - либо писать init метод
var myBar: String
func init() {
myBar = "вот теперь переменная не пустая - не оборачиваем"
}
}