Ans :
An Optional is basically means that the variable can be nil
i.e:
var itCanBeNil: String? = “You can make me nil”
itCanBeNil = nil
Question Mark(?) indicates the fact that itCanBeNil Variable can be nil
Let’s try to make nil a variable which declared without Optional ?
i.e
var itCantBeNil: String = “You can’t make me nil”
itCantBeNil = nil //Compiler Throws Exception as “Nil cannot be assigned to type ‘String’ ‘”
If we need to get the value from the Variable if it is Optional, we need to unwrap it,
unwrapping is nothing but just putting an exclamation mark at the end
i.e
var itCanBeNil: String? = “Unwrap me”
print(itCanBeNil) //Output: Optional(Unwrap me)
print(itCanBeNil!) //Output: Unwrap me
We can also declare optionals to automatically unwrap by using exclamation mark instead of a question mark
i.e
var itCanBeNil: String! = “Automatic unwrap”
print(itCanBeNil) //No Wrapping needed
An Optional is basically means that the variable can be nil
i.e:
var itCanBeNil: String? = “You can make me nil”
itCanBeNil = nil
Question Mark(?) indicates the fact that itCanBeNil Variable can be nil
Let’s try to make nil a variable which declared without Optional ?
i.e
var itCantBeNil: String = “You can’t make me nil”
itCantBeNil = nil //Compiler Throws Exception as “Nil cannot be assigned to type ‘String’ ‘”
If we need to get the value from the Variable if it is Optional, we need to unwrap it,
unwrapping is nothing but just putting an exclamation mark at the end
i.e
var itCanBeNil: String? = “Unwrap me”
print(itCanBeNil) //Output: Optional(Unwrap me)
print(itCanBeNil!) //Output: Unwrap me
We can also declare optionals to automatically unwrap by using exclamation mark instead of a question mark
i.e
var itCanBeNil: String! = “Automatic unwrap”
print(itCanBeNil) //No Wrapping needed