- Swift 2 Blueprints
- Cecil Costa
- 392字
- 2021-07-09 21:36:42
New Swift features
Swift is a new language, but it has been changed a few times. While this book was being written, Swift had passed through the 1.2 and 2.0 versions. These versions have some syntax differences compared to the previous ones.
Before the Swift 1.2 version, you couldn't use more than one let
statement on an if
statement, so you probably had to write codes like the following one:
if let name = product.name { if let category = product.category{ if let price = product.price { if price >= 0 { println("The product is valid") } } } }
Now, you can reduce the number of lines and write a code like the next one:
if let name = product.name, category = product.category, price = product.price where price >= 0 { println("The product is valid") }
Constants can be initialized after their declaration and before using them, like the following code:
let discount:Double if onSale { discount = 0.2 }else { discount = 0 }
Downcasts and casts that don't return options must use the as!
operator instead of the old as
operator. It means that the casting from typical functions that return AnyObject
must use the new operator. For example, the call to retrieve the index paths of a table view will be as follows:
var paths = tableView.indexPathsForRowsInRect(rect) as! [NSIndexPath]
If you have a huge project done with the first Swift version, you might be scared about the number of errors you have for small things like using the new as!
operator. Fortunately, there is an option to update our Swift code in the Edit menu in order to convert our code to the latest Swift version syntax, as it is demonstrated in the following screenshot:

When Swift was announced, it brought with itself new data types that replaced the equivalent Objective-C containers, such as Array for NSArray
, String to replace NSString
, and Dictionary for NSDictionary
, but there was a missing type: NSSet
. Now, there is Set
that follows the same rule as its colleagues: it must specify the data type that it will store (generics) and it is interchangeable with NSSet
.
A new attribute was introduced in the Swift language, it is called final
. If you have a final class, no class can inherit from it. If you have an attribute or a method, you can't override it.
- UI設計基礎培訓教程
- Learning Java Functional Programming
- ASP.NET Web API:Build RESTful web applications and services on the .NET framework
- Python程序設計教程(第2版)
- Getting Started with PowerShell
- Django Design Patterns and Best Practices
- Full-Stack Vue.js 2 and Laravel 5
- Expert Android Programming
- C語言實驗指導及習題解析
- Visual C#通用范例開發金典
- Visual C++開發入行真功夫
- Citrix XenServer企業運維實戰
- 零基礎學C++(升級版)
- 高效使用Greenplum:入門、進階與數據中臺
- VMware vSphere Design Essentials