The need for optional types in Swift
Now, the burning question: why does Swift need optionals? To understand this question, we should examine what problems optionals are designed to solve.
In most languages, it is possible to create a variable without giving it an initialized value. For example, in Objective-C, both of these lines of code are valid:
int i;
MyObject *m;
Now, let's say that the MyObject
class, written in Objective-C, has the following method:
-(int)myMethodWithValue:(int)i {
return i*2;
}
This method takes the value passed in from the i
parameter, multiplies it by two, and returns the results. Let's try to call this method using the following code:
MyObject *m;
NSLog(@"Value: %d",[m myMethodWithValue:5]);
Our first thought might be that this code would display Value: 10
, since we are pass athe value of 5
to a method that doubles the value passed in; however, this would be incorrect. In reality, this code would...