Default vs Optional vs Explicit Non-nil Variables: Swift
--
In Swift, we can differentiate the variables into three different categories based on their possible values.
The variable can be of default type, optional type or an explicit non-nil type.
All three types of variables can be clubbed with both let and var. Or they can also be used with any data type.
Before looking at their differences, Let’s try to understand them one by one in detail.
This post was originally posted at https://agrawalsuneet.github.io/blogs/default-vs-optional-vs-explicit-non-nil-variables-swift/ and later reposted on Medium.
Default Type Variable
Default type variables are the ones which need to be initialised either in the constructor or need to be declared along with the definition itself. It can be initialised with some default value and later can be changed if it’s a mutable var type.
There is no separate syntax for default type variables.
If we don’t initialise the variable with definition and even in the constructor, The compiler will show an error.
class CustomClass{
var defaultVariable: Int
var defaultVariable2: Int = -1
init(defaultVariable : Int){
self.defaultVariable = defaultVariable
}
}
Optional Type Variable
Optional type variables are the ones which can hold a nil value as well.
Initialising the optional type variables is optional at both the places ie while defining or in the constructor.
By default, the compiler will initialise the optional variable with a nil value. It can be changed to nil if the variable is of var type.
Optional variables can be defined using ? as a suffix to the variable type. Option variables require a nil check or unwrapping while using them.