Swift 3.0 學(xué)習(xí)(一)(持續(xù)更新)

英語好的可以閱讀官方文檔 鏈接

附上本人學(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 ,DoubleBool
)默認(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)

判斷Setcount是否為空, 如下:

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 的字典類型是無序集合類型行您。為了以特定的順序遍歷字典的鍵或值铭乾,可以對字典的keysvalues屬性使用sorted()方法。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末娃循,一起剝皮案震驚了整個濱河市炕檩,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌捌斧,老刑警劉巖笛质,帶你破解...
    沈念sama閱讀 221,635評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異捞蚂,居然都是意外死亡经瓷,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評論 3 399
  • 文/潘曉璐 我一進(jìn)店門洞难,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人揭朝,你說我怎么就攤上這事队贱。” “怎么了潭袱?”我有些...
    開封第一講書人閱讀 168,083評論 0 360
  • 文/不壞的土叔 我叫張陵柱嫌,是天一觀的道長。 經(jīng)常有香客問我屯换,道長编丘,這世上最難降的妖魔是什么与学? 我笑而不...
    開封第一講書人閱讀 59,640評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮嘉抓,結(jié)果婚禮上索守,老公的妹妹穿的比我還像新娘。我一直安慰自己抑片,他們只是感情好卵佛,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,640評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著敞斋,像睡著了一般截汪。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上植捎,一...
    開封第一講書人閱讀 52,262評論 1 308
  • 那天衙解,我揣著相機(jī)與錄音,去河邊找鬼焰枢。 笑死蚓峦,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的医咨。 我是一名探鬼主播枫匾,決...
    沈念sama閱讀 40,833評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼拟淮!你這毒婦竟也來了干茉?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,736評論 0 276
  • 序言:老撾萬榮一對情侶失蹤很泊,失蹤者是張志新(化名)和其女友劉穎角虫,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體委造,經(jīng)...
    沈念sama閱讀 46,280評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡戳鹅,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,369評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了昏兆。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片枫虏。...
    茶點(diǎn)故事閱讀 40,503評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖爬虱,靈堂內(nèi)的尸體忽然破棺而出隶债,到底是詐尸還是另有隱情,我是刑警寧澤跑筝,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布死讹,位于F島的核電站,受9級特大地震影響曲梗,放射性物質(zhì)發(fā)生泄漏赞警。R本人自食惡果不足惜妓忍,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,870評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望愧旦。 院中可真熱鬧世剖,春花似錦、人聲如沸忘瓦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽耕皮。三九已至境蜕,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間凌停,已是汗流浹背粱年。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留罚拟,地道東北人台诗。 一個月前我還...
    沈念sama閱讀 48,909評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像赐俗,于是被迫代替她去往敵國和親拉队。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,512評論 2 359

推薦閱讀更多精彩內(nèi)容