Tuesday, December 6, 2016
What is Optional in Swift!!!
Apple's new programming language language swift is a very safe language. It will try to make sure that your code is not going to crash. To do this swift provides a feature called optional type. This optional type will store wrapped value if present and nil if no value presents. That basically means any optional variable either contains a value or nil. Lets see deep into optional type. The Optional type is a enumerated value with two values nil and some value which are represented as below.
Optional Binding: We can use optional variable by unwrapping the value, so that there wont be any runtime error. To unwrap conditionally we have three options
In this case, someResult will be someValue if it has value and anotherValue if someValue is nil.
Chaining example:
Unconditional Unwrapping: If you are sure that optional has a value,then this unconditional unwrapping will be used by specifying forced unwrap operator (postfix !). The problem with this feature is, if the optional value is nil, you will get run time error or possibly your app may crash.
It is also possible to use chaining using postfix !.
Happy Swifting!!!
References:
Apple Doc
- Optional.none
- Optional.some(value)
let shortForm: Int? = Int("77") let longForm: Optional= Int("77")
Optional Binding: We can use optional variable by unwrapping the value, so that there wont be any runtime error. To unwrap conditionally we have three options
- if let
- gaurd let
- switch
if let someResult = someValue?.someMethod()?.someAnotherMethod() { print("Success") } else { print("failed") }Nil-Coalescing Operator: This will be used for the optional to set default value for the nil optional value. And this can be used by doubel question mark ??. This can be also used as chaining
let someResult = someValue?? anotherValue
In this case, someResult will be someValue if it has value and anotherValue if someValue is nil.
Chaining example:
let someResult = someValue?? anotherValue?? anotherValue1
Unconditional Unwrapping: If you are sure that optional has a value,then this unconditional unwrapping will be used by specifying forced unwrap operator (postfix !). The problem with this feature is, if the optional value is nil, you will get run time error or possibly your app may crash.
let number = Int("77")! print(number) // Prints "77"
It is also possible to use chaining using postfix !.
let isPNG = imagePaths["image"]!.hasSuffix(".png") print(isPNG) // Prints "true"
Happy Swifting!!!
References:
Apple Doc
Subscribe to:
Post Comments (Atom)
Popular Posts
-
A universally unique identifier ( UUID ) is an identifier standard used in software construction, standardized by the Open...
-
Recently I started working on Japser Studio professional for my new project Cloud to generate the reports. I was very new to all cloud ...
-
Below is C program for AVL Tree implementation. #include<stdio.h> #include<malloc.h> typedef struct bst { int info; int hei...
-
strcmp is another string library function which is used to compare two strings and returns zero if both strings are same , returns +ve valu...
-
One of the complex operation on binary search tree is deleting a node. Insertion is easy by calling recursive insertion. But deletion wont...
-
We have recently faced one tricky issue in AWS cloud while loading S3 file into Redshift using python. It took almost whole day to inde...
-
Object slicing: when a derived class object is assigned to a base class object. only base class data will be copied from derived class and...
-
We have faced lot of weird issues while loading S3 bucke t files into redshift. I will try to explain all issues what we faced. Before go...
-
Below code is to find the cube root of a given integer number with out using pow math library function. Its very simple and brute force...
-
Recently we faced one issue in reading messages from SQS in AWS cloud where we are processing same message multiple times. This issue we...
No comments:
Post a Comment