Swift -- 第二章

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

附一張上阿海


集合類型 (Collection Types)

Swift 語言提供Arrays、Sets和Dictionaries三種基本的 合類型用來存儲 合數(shù)據(jù)。數(shù)組(Arrays)是有序數(shù)據(jù)的 。 合(Sets)是無序無重復(fù)數(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)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

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