Swift -- 第二章

It is always morning somewhere in the world. =======》》 世界上總有個地方是有陽光的。線上app 因為ipv6 ?給拒回來了 ? 弄了一會 耽誤半天······催植。

附一張上阿海


集合類型 (Collection Types)

Swift 語言提供Arrays肮蛹、Sets和Dictionaries三種基本的 合類型用來存儲 合數(shù)據(jù)。數(shù)組(Arrays)是有序數(shù)據(jù)的 创南。 合(Sets)是無序無重復數(shù)據(jù)的 伦忠。字典(Dictionaries)是無序的鍵值對的 。

Swift 語言中的Arrays稿辙、Sets和Dictionaries中存儲的數(shù)據(jù)值類型必須明確昆码。這意味著我們不能把不正確的數(shù)據(jù)類型插入其中。

數(shù)組(Arrays) ======>>>>>>>>>

創(chuàng)建一個空數(shù)組

var someInts = [Int]() ? // 數(shù)組里面的類型就會被腿短為Int 類型 (創(chuàng)建一個指定數(shù)據(jù)類型構(gòu)成的空數(shù)組)

數(shù)組添加元素

someInts.append(3)

創(chuàng)建一個帶有默認值的數(shù)組


var anotherThreeDoubles = Array(repeating: 2.5, count: 3)

會被推斷為 Double 類型 等同于 [2.5,2.5,2.5,]

可以使用數(shù)組的readOnly屬性 count來獲取數(shù)組中的數(shù)據(jù)項數(shù)量:

anotherThreeDoubles.count

同時 也可以使用isEmpty? 來判斷count 是不是0 ? 不用去像OC 的 ?array.count == 0

if anotherThreeDoubles.isEmpty {} else {}

為數(shù)組添加元素

append

除此之外,使用加法賦值運算符(+=)也可以直接在數(shù)組后面添加一個或多個擁有相同類型的數(shù)據(jù)項:

array += ["Baking Powder"]

當然了 也可以通過下標去取出數(shù)組中的元素 ?array[0] 邻储、赋咽、 、吨娜、脓匿、// 數(shù)組里的第一個元素

同時也可以利用下標去改變數(shù)組總的元素 ?array[ 0 ] = "changeVaule"

注意:!!!!!

不可以用下標訪問的形式去在數(shù)組尾部添加新項。


調(diào)用數(shù)組的insert(_:at:)方法來在某個具體索引值之前添加數(shù)據(jù)項:

array.insert("Maple Syrup", at: 0)

// "Maple Syrup" 現(xiàn)在是這個列表中的第一項

remove(at:)同理 insert

當我們想remove 最后一項的時候 不用remove(at:)? 而是 removeLast()

let arrayTwo = array.removeLast()

數(shù)組的遍歷

swift ?我們可以使用for in 遍歷

for item? in arrayTwo { print ( item )? }



集合 (Sets) ?=======>>>>>>>>>>

集合(Set)用來存儲相同類型并且沒有確定順序的值萌壳。當 合元素順序不重要時或者希望確保每個元素只出現(xiàn)一次時可以使用 合而不是數(shù)組亦镶。

注意:Swift的Set類型被橋接到Foundation中的NSSet類。

關(guān)于使用Foundation和Cocoa中Set的知識,參見Using Swift with Cocoa and Obejective-C(Swift3.0.1)中使用 Cocoa 數(shù)據(jù)類型部分

創(chuàng)建一空的集合

var letters = Set<Character>()

插入一個數(shù)字

letters.insert("a")

創(chuàng)建一個指定類型(string)的的集合

var favoriteGenres: Set<String>?= ["Rock", "Classical", "Hip hop"] ?//但是由于 ?swift 有推斷功能 所以我們還可以這樣寫

var favoriteGenres: Set = ["Rock", "Classical", "Hip hop"] ? //省事多了

添加和刪除 ?跟數(shù)組差不多

使用contains(_:)方法去檢查Set中是否包含一個特定的值:

if favoriteGenres.contains("Funk") {

print("I get up on the good foot.")

} else {

print("It's too funky in here.")

}

// 打印 "It's too funky in here."

?可以for in ?遍歷一個set ?

通過集合的 sorted屬性 ?會返回給你一個有序的數(shù)組了

for genre in favoriteGenres.sorted() {

print(genre)

}

? 使用symmetricDifference(_:)方法根據(jù)在一個 合中但不在兩個 合中的值創(chuàng)建一個新的集合袱瓮。

? 使用union(_:)方法根據(jù)兩個 合的值創(chuàng)建一個新的集合缤骨。

? 使用subtracting(_:)方法根據(jù)不在該 合中的值創(chuàng)建一個新的集合。

使用“是否相等”運算符(==)來判斷兩個 合是否包含全部相同的值尺借。

使用isSubset(of:)方法來判斷一個 合中的值是否也被包含在另外一個 合中绊起。

使用isSuperset(of:)方法來判斷一個 合中包含另一個 合中所有的值。

使用isStrictSubset(of:)或者isStrictSuperset(of:)方法來判斷一個 合是否是另外一個 合的子 合或

者父 合并且兩個 合并不相等燎斩。

使用isDisjoint(with:)方法來判斷兩個 合是否不含有相同的值(是否沒有交 )虱歪。

基本就這么多 一般來說 這玩意 也用不到

字典(Dictionary)

這個不用解釋了 ? 每個值(value)都有一個對應(yīng)是鍵(key)跟查字典一樣?

注意:Swift 的Dictionary類型被橋接到Foundation的NSDictionary類蜂绎。

我們可以像數(shù)組一樣使用構(gòu)造語法創(chuàng)建一個擁有確定類型的空字典:

創(chuàng)建字典?

var namesOfIntegers =Int: String ? ?/// ?Int 類型的空字典

namesOfIntegers[16] = "sixteen" ? ?////現(xiàn)在包含一個鍵值對

namesOfIntegers = [:] ? ? ? ? ? ? ? ? ? ? ?/// 又成為了一個 [Int: String] 類型的空字典

let dic ?= ["name" : "HanShaun" , "age": "25","sex" : "man" ];

指定類型的字典

let dic : [string : string] = ["name" : "HanShaun" , "age": "25","sex" : "man" ];

判空同數(shù)組

更改?

dic["name"] = "Tom" ? ?現(xiàn)在name ?所對應(yīng)的value 就是"Tom" 了

遍歷字典 ? ?通過for in ?Key ?Value ?來遍歷

let dic:[String : Array] = ["BR": ["1","2","3"], "GH": ["1","2","3"], "JP":? ["1","2","3"]]

?for (key , value) in dic { ? ? ? ??

? ?print(key)

? }

通過訪問 或者 屬性,我們也可以遍歷字典的鍵或者值

for key in dic.keys{

print (key)

}

Swift 的字典類型是無序 合類型。為了以特定的順序遍歷字典的鍵或值,可以對字典的 或 屬性使用sorted() 方法笋鄙。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末师枣,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子萧落,更是在濱河造成了極大的恐慌践美,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,110評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件找岖,死亡現(xiàn)場離奇詭異陨倡,居然都是意外死亡,警方通過查閱死者的電腦和手機许布,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,443評論 3 395
  • 文/潘曉璐 我一進店門兴革,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人蜜唾,你說我怎么就攤上這事杂曲。” “怎么了灵妨?”我有些...
    開封第一講書人閱讀 165,474評論 0 356
  • 文/不壞的土叔 我叫張陵解阅,是天一觀的道長落竹。 經(jīng)常有香客問我泌霍,道長,這世上最難降的妖魔是什么述召? 我笑而不...
    開封第一講書人閱讀 58,881評論 1 295
  • 正文 為了忘掉前任朱转,我火速辦了婚禮,結(jié)果婚禮上积暖,老公的妹妹穿的比我還像新娘藤为。我一直安慰自己,他們只是感情好夺刑,可當我...
    茶點故事閱讀 67,902評論 6 392
  • 文/花漫 我一把揭開白布缅疟。 她就那樣靜靜地躺著,像睡著了一般遍愿。 火紅的嫁衣襯著肌膚如雪存淫。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,698評論 1 305
  • 那天沼填,我揣著相機與錄音桅咆,去河邊找鬼。 笑死坞笙,一個胖子當著我的面吹牛岩饼,可吹牛的內(nèi)容都是我干的荚虚。 我是一名探鬼主播籍茧,決...
    沈念sama閱讀 40,418評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼寞冯,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了简十?” 一聲冷哼從身側(cè)響起檬某,我...
    開封第一講書人閱讀 39,332評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎恢恼,沒想到半個月后胰默,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,796評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡漏隐,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,968評論 3 337
  • 正文 我和宋清朗相戀三年奴迅,在試婚紗的時候發(fā)現(xiàn)自己被綠了取具。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片暇检。...
    茶點故事閱讀 40,110評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡块仆,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出庄敛,到底是詐尸還是另有隱情蜜暑,我是刑警寧澤,帶...
    沈念sama閱讀 35,792評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站之众,受9級特大地震影響依许,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜峭跳,卻給世界環(huán)境...
    茶點故事閱讀 41,455評論 3 331
  • 文/蒙蒙 一蛀醉、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧拯刁,春花似錦、人聲如沸垛玻。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,003評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽账嚎。三九已至,卻和暖如春醉锄,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,130評論 1 272
  • 我被黑心中介騙來泰國打工开呐, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人卵惦。 一個月前我還...
    沈念sama閱讀 48,348評論 3 373
  • 正文 我出身青樓瓦戚,卻偏偏與公主長得像,于是被迫代替她去往敵國和親畜疾。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,047評論 2 355

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

  • //var intArray:Array = [Int]();varintArray = [Int]();prin...
    XLsn0w閱讀 436評論 0 0
  • 53.計算字符 在字符串中獲取字符值的數(shù)量, 可以使用字符串字符屬性中的計數(shù)屬性: let unusualMena...
    無灃閱讀 1,091評論 0 4
  • Swift是蘋果于2014年推出的一種新語言墨榄。Swfit 將替換 Objective-C,成為 iOS 和 Mac...
    titvax閱讀 571評論 0 1
  • 詩成幾行畫成篇章 感慨夢想與時光 都是那樣憧憬不忘 時光悄悄地 無聲無息 我們跑過去 帶...
    麋鹿班閱讀 253評論 0 1
  • 題目1: 什么是同源策略 瀏覽器出于安全方面的考慮,只允許與本域下的接口交互嫂拴。不同源的客戶端腳本在沒有明確授權(quán)的情...
    peaceChierdo閱讀 265評論 0 0