Answer the question
In order to leave comments, you need to log in
What are the "?" and "!" near variables in Swift?
The documentation talks about "wrapping variables".
What does this even mean?
How do you know where to use them?
As I understand it, where a variable can be null, it is necessary to wrap it.
But after all, all the variables that the user enters may turn out to be empty, so I check it right away, before processing.
So why is it?
seven? = 7
eight! = 8
Answer the question
In order to leave comments, you need to log in
let foo: String! = "зуб даю что эта переменная содержит значение, и восклицательный знак указывает на это"
print(foo) // тут восклицательный знак не нужен ибо мы уверены
var bar: String? = "переменная может содержать значение, а может и не содержать, знак вопроса на это указывает"
print(bar!) // восклицательный знак нужен для доступа к значению такой переменной
I'll try to expand on the answer:
class MyClass {
let myConst = "тут не оборачиваем, ибо значение будет сразу при инициализации класса, инфа соточка"
var myFoo = "тут - тоже будет, по этому не оборачиваем"
// а тут нет значения при инициализации класса -> будет ошибка.
var myBar: String
// придется - либо оборачивать и тут... и в дальнейшем,
var myBar: String?
// - либо писать init метод
var myBar: String
func init() {
myBar = "вот теперь переменная не пустая - не оборачиваем"
}
}
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question