over 6 years 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 1…5 {
index
}
也可以把 range 指定給一個變數或常數傳遞
let range = 0…10
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)]