Home Ask Login Register

Developers Planet

Your answer is one click away!

NiCk.JaY February 2016

Default value of uninitialized variable/object in Swift

I'm new here. Just started learning Swift, and when I got to the topic of optionals, I started to wonder what the default value of an uninitialized variable is.

In Java, an 'int' gets initialized to 0. In C, it gets garbage value. So what's with Swift? To be a bit more precise, what is stored in x, when I write "var x: Int" ?

Also, if an uninitialized object "var c: UIColor" can not be pointing to nil, what does it point to?


appzYourLife February 2016

Non optionals

If you declare a variable like this

var color: UIColor

the state of the variable is Uninitalized. This means the compiler will not allow you to read it before it gets initialized.

>> error: variable 'color' used before being initialized


Interestingly the compiler is smart enough to check if all the branches of your code are initializing the variable before it gets used.

E.g. this code will produce an error because the compiler cannot guarantee that color is initialised before print(color) is executed.

var color: UIColor
let random = arc4random_uniform(10)
if random > 5 {
    color = UIColor.redColor()
// error: variable 'color' used before being initialized


On the other hand if you declare a variable as an optional

var color: UIColor?

it gets initialised with nil

// nil

vadian February 2016

Non-optional variables don't have a default value.

You can't use uninitialized variables in Swift anyway. The compiler doesn't let you.

Post Status

Asked in February 2016
Viewed 2,891 times
Voted 14
Answered 2 times


Leave an answer

Quote of the day: live life