Search icon
Arrow left icon
All Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletters
Free Learning
Arrow right icon
Learning Swift Second Edition - Second Edition

You're reading from  Learning Swift Second Edition - Second Edition

Product type Book
Published in Mar 2016
Publisher
ISBN-13 9781785887512
Pages 308 pages
Edition 2nd Edition
Languages
Author (1):
Andrew J Wagner Andrew J Wagner
Profile icon Andrew J Wagner

Table of Contents (19) Chapters

Learning Swift Second Edition
Credits
About the Author
About the Reviewer
www.PacktPub.com
Preface
1. Introducing Swift 2. Building Blocks – Variables, Collections, and Flow Control 3. One Piece at a Time – Types, Scopes, and Projects 4. To Be or Not To Be – Optionals 5. A Modern Paradigm – Closures and Functional Programming 6. Make Swift Work For You – Protocols and Generics 7. Everything Is Connected – Memory Management 8. Paths Less Traveled – Error Handling 9. Writing Code the Swift Way – Design Patterns and Techniques 10. Harnessing the Past – Understanding and Translating Objective-C 11. A Whole New World – Developing an App 12. What's Next? – Resources, Advice, and the Next Steps Index

The underlying implementation


At this point, you should have a pretty strong grasp of what an optional is and how to use and debug it, but it will be valuable to look a little deeper at optionals to see how they actually work.

In reality, the question mark syntax for optionals is just special shorthand. Writing String? is equivalent to writing Optional<String>. Writing String! is equivalent to writing ImplicitlyUnwrappedOptional<String>. The Swift compiler has the shorthand versions because they are so commonly used. This allows the code to be more concise and readable.

If you declare an optional using the long form, you can see Swift's implementation by holding Command and clicking on the word Optional. Here, you can see that Optional is implemented as an enumeration. Simplifying the code a little, we have:

enum Optional<T> {
    case None
    case Some(T)
}

So we can see that an optional really has two cases: None and Some. None stands for the nil case, while the Some case...

lock icon The rest of the chapter is locked
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $15.99/month. Cancel anytime}