over 1 year ago

Basic Operators

nil 判斷

第一個運算子放置 Optionals 並加上雙問號,可以判斷 Optionals 是否為 nil,
如果不為 nil 會帶入第一個運算子,是 nil 就會帶入第二個運算子。

let s = "abc"
var s2: String?
s2 = s2 ?? s

範圍運算元

應用在 for in loop 內,下述的 sample 表示 index 為 1 到 5。

for index in 15 {
    index
}

也可以把 range 指定給一個變數或常數傳遞

let range = 010

String and Characters

初始化與判斷空字串

有兩個方法可以初始化 String,初始值都是空字串。

var s = ""
var s = String()

判斷空字串的方法

s.isEmpty

String 為可變動字串

與 Objc 將字串分為 NSString 與 NSMutableString 兩種不同,
Swift 的 String 都是可變動的。

String 支援加號運算

let s = "abc" + "edf"

String 是 Value types

下述的 sample 把 s1 的值給 s2 時,會進行一次 copy,所以改動 s2 時,s1 並不會改動。

var s1 = "abc"
var s2 = s1
s2 = "def"

Characters

可以將 String 的每個字拆開成 Characters。

let s = "abc"
for character in s.characters {
    character
}

Character 的值只能是單一字串。

let c: Character = "1"

可以再將 Character 組合回 String。

let c: Character = "1"
let s = String(c)

String 與 Character 運算

String 可以相加,Character 不能相加,因爲只能是單一字串。
String 可加上 Character。

var s = "1"
let c: Character = "2"
s.append(c)

String 插入變數或常數

let num = 1
let s = “\(num) !!!

計算 String 長度

必須透過 Character 來計算長度。

let s = "12345"
let count = s.characters.count

String index

String 有一特殊型別叫做 String.Index,可以透過它得到每個字元在字串中的位置。
startIndex 是取得字串第一個位置 index。

let s = "123"
let s2 = s[s.startIndex]

endIndex 是取得字串最後一個位置 index,
但下述的 sample 會有 error,因為最後一個位置 index 等於字串長度,會超出字元 array。

let s = "123"
let s2 = s[s.endIndex]

若要取得字串最後一個字元,必須取得最後一個 index 的前一個位置的字元。

let s = "123"
let s2 = s[s.index(before:s.endIndex)]
← Colorful Terminal iOS Swift : Collection Types →