英語好的可以閱讀官方文檔 鏈接
附上本人學(xué)習(xí) Swift3.0 資源網(wǎng)站 鏈接
空合運(yùn)算符(??)
空合運(yùn)算符(a ?? b
), 將對可選類型 a
進(jìn)行空判斷, 若 a
包含值就進(jìn)行解封, 否則返回一個默認(rèn)值 b
表達(dá)式 a
必須是可選類型(Optional
), 默認(rèn)值 b
的類型必須要和 a
存儲值的類型保持一致 导狡。
字符串索引
使用 characters
屬性的 indices
屬性會創(chuàng)建一個包含全部索引的范圍(Range
),用來在一個字符串中訪問單個字符
for index in greeting.characters.indices {
print("\(greeting[index]) ", terminator: "")
}
// 打印輸出 "G u t e n T a g ! "
數(shù)組(Arrays)、集合(Sets)今魔、字典(Dictionaries)
Swift 語言提供Arrays遂跟、Sets和Dictionaries三種基本的集合類型用來存儲集合數(shù)據(jù)别瞭。
- 數(shù)組(Arrays)是有序數(shù)據(jù)的集脊僚。
- 集合(Sets)是無序無重復(fù)數(shù)據(jù)的集拣宰。
- 字典(Dictionaries)是無序的鍵值對的集轩端。

1.集合類型的哈希值
一個類型為了存儲在集合中放典,該類型必須是可哈希化的--也就是說基茵,該類型必須提供一個方法來計算它的哈希值奋构。一個哈希值是Int
類型的,相等的對象哈希值必須相同拱层,比如a==b
,因此必須a.hashValue == b.hashValue
弥臼。
Swift
的所有基本類型(比如String
,Int
,Double
和Bool
)默認(rèn)都是可哈希化的舱呻,可以作為集合的值的類型或者字典的鍵的類型醋火。沒有關(guān)聯(lián)值的枚舉成員值默認(rèn)也是可哈嫌破化的。
創(chuàng)建一個空集合:
let set = Set<Character>()
Character
代表只允許存儲字符類型, 也可以使用Int
, Double
, String
等
向集合中插入字符:
set.insert("w")
//輸出結(jié)果:
["w"]
一個Set
類型不能從數(shù)組字面量中被單獨(dú)推斷出來芥驳,因此Set
類型必須顯式聲明, 如下:
let libraries: Set = ["1", "2", "3"]
為了找出 Set
中元素的數(shù)量, 可以使用count
只讀屬性, 如下:
print(libraries.count)
判斷Set
中count
是否為空, 如下:
if libraries.isEmpty {
print("為空")
}
else{
print("不為空")
}
//輸出結(jié)果:
不為空
插入(insert)柿冲、刪除(remove)、包含(contains)
2. 字典
Swift 的字典使用Dictionary<Key, Value>
定義兆旬,其中Key
是字典中鍵的數(shù)據(jù)類型假抄,Value
是字典中對應(yīng)于這些鍵所存儲值的數(shù)據(jù)類型。
注意:
一個字典的Key類型必須遵循Hashable協(xié)議丽猬,就像Set的值類型宿饱。
1) 字典定義
創(chuàng)建一個空字典
let dict = [Int, String]()
2) 修改、刪除和訪問字典
dict[10] = "11"
dict[10] = "??"
print(dict)
//輸出結(jié)果:
??
dict.updateValue("更新值", forKey: 10)
print(dict)
//輸出結(jié)果:
更新值
訪問字典
因?yàn)橛锌赡苷埱蟮逆I沒有對應(yīng)的值存在脚祟,字典的下標(biāo)訪問會返回對應(yīng)值的類型的可選值谬以。如果這個字典包含請求鍵所對應(yīng)的值,下標(biāo)會返回一個包含這個存在值的可選值由桌,否則將返回nil
, 解決方法如下:
print(dict[8] ?? "沒有值")
//輸出結(jié)果:
沒有值
刪除字典中元素
dict.removeValue(forKey: 10)
3)字典遍歷
for (key, value) in dict {
print("\(key) \(value)")
}
//輸出結(jié)果:
0 ??
通過訪問keys
或者values
屬性为黎,我們也可以遍歷字典的鍵或者值:
//遍歷 keys
for keys in dict.keys {
print(keys)
}
//輸出結(jié)果:
0
// 遍歷 values
for values in dict.values {
print(values)
}
//輸出結(jié)果:
??
如果我們只是需要使用某個字典的鍵集合或者值集合來作為某個接受Array
實(shí)例的 API 的參數(shù),可以直接使用keys
或者values
屬性構(gòu)造一個新數(shù)組:
//輸出所有的 keys
let keys = [Int](dict.keys)
print(keys)
//輸出結(jié)果:
[0]
// 輸出所有的 values
let values = [String](dict.values)
print(values)
//輸出結(jié)果:
["??"]
Swift 的字典類型是無序集合類型行您。為了以特定的順序遍歷字典的鍵或值铭乾,可以對字典的keys
或values
屬性使用sorted()
方法。