Chapter 2. The Swift Language

Published on 2016 - 02 - 18

Types in Swift
主要爲三類

  • structures
  • classes
  • enumerations

所有的三類都有

  • properties: 某種類型的值
  • initializers: 初始化實例的代碼
  • class 或 static methods: Type自己可以調用的Functions

Swift 標準庫提供三類 Collections: arrays, dictionaries 和 sets.
array是順序Collections,array是強類型,定義了 Int 就不能加 String 進去
var arrayOfInt Array
也可以簡寫成
var arrayOfInt
dictionary是無序鍵-值對應Collection,值可以是任意類型,包括 structue 和 classes,鍵也可以是任意類型,但必須是唯一的。鍵通常是 hashable,以保證值的訪問更有效率。Int,Float,Character 和 String
var dictionaryOfCapitalsByCountry: Dictionary
可以簡寫爲
var dictionaryOfCapitalsByCountry: [String: String]
set 是無序的Collections, 包含指定的數據類型,成員必須是 hashable以保證快速訪問
var winningLotteryNumber: Set
properties
properties是實例的某個值
如 array 的 ayyayName.count, string 的 someString.isEmpty
Instance methods
Optionals
Swift 類型可以是 optional, 添加一個 ? 在類型後面
optional 類型在使用前必須解包,解包的方式有兩種:optional binding 和 forced unwarpping
forced unwarpping 除非你確認有值,否則會運行時出錯,建議的方式用 optional binding
reading1 = 9.1
reading2 = 9.2
reading3 = 9.3

Forced unwarpping
let averageReading = (reading1! + reading2! + reading3!) / 3
optional binding
if let r1 = reading1,
r2 = reading2,
r3 = reading3 {
let avgReading = (r1 + r2 + r3) / 3
} else {
let errorString = "Instrument reported a reading that was nil"
}
Swift 是相比 Objective-C, 增加了
Tuples, Tuples可以傳遞多個變量
Optional
type-safe 讓你在開發階段儘早捕捉和修正錯誤