真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Swift編程高級(jí)教程(三)集合類型-數(shù)組

集合類型—數(shù)組

Swift語言提供了兩種集合數(shù)據(jù)類型:數(shù)組和字典,數(shù)組是一系列相同類型的變量值有序存儲(chǔ);字典是一系列相同類型的變量值的無序存儲(chǔ),可以通過一個(gè)唯一標(biāo)識(shí)符(鍵)來引用和查找。

成都創(chuàng)新互聯(lián)公司主要從事成都網(wǎng)站建設(shè)、成都做網(wǎng)站、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)銀川,十載網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):13518219792

數(shù)組和字典總是能識(shí)別自己所能夠存儲(chǔ)的鍵值的類型,就是說,我們不能夠往這兩個(gè)容器內(nèi)插入錯(cuò)誤的類型。顯式類型聲明的集合能確保我們的代碼總是能識(shí)別其所能存儲(chǔ)的變量類型,并能夠讓我們?cè)趯?shí)際編碼中捕捉到出現(xiàn)的任何類型錯(cuò)誤。

提示
Swift的數(shù)組類型的變量在常量,變量賦值或者給函數(shù)和方法傳參的時(shí)候會(huì)表現(xiàn)出和其他類型不一樣的行為。

數(shù)組

數(shù)組在一個(gè)有序列表中存儲(chǔ)相同類型的多個(gè)值,而且相同值可以在不同位置重復(fù)存儲(chǔ)。
Swift數(shù)組不和Objective-C的數(shù)組那樣可以存儲(chǔ)任意Objective-C的對(duì)象,她是存貯指定類型的值;他的類型信息是非常明確的,不管顯式類型標(biāo)記或者隱式類型來推斷,他總是有確定的一個(gè)類型,而且也沒有必定是一個(gè)類對(duì)象。比如你在一個(gè)Int類型的數(shù)組里,你能且只能往里面插入Int類型的變量,其他任何值都不行。故Swift的數(shù)組是類型安全的!

數(shù)組類型簡(jiǎn)寫語法

Swift數(shù)組類型的一般書寫的完×××式是Array < SomeType >,其中SomeType為該數(shù)組所允許存儲(chǔ)元素的數(shù)據(jù)類型,我們也可以用這樣的簡(jiǎn)寫方式:SomeType[]。這兩種形式的寫法本質(zhì)上是完全相同的,但是我們更喜歡使用簡(jiǎn)寫的方式,并在后續(xù)的教程里都用這個(gè)形式,大茶也相信讀者們肯定也喜歡簡(jiǎn)寫方式的。

數(shù)組字面常量

我們可以用一個(gè)數(shù)組字面常量來初始化一個(gè)數(shù)組變量。數(shù)組的字面常量書寫方式如下:

[value 1value 2value 3value 1]

下面的例子創(chuàng)建一個(gè)叫做shoppingList的數(shù)組來存儲(chǔ) String 類型值:

var shoppingList: String[] = ["Eggs", "Milk"]// 把shoppingList初始化為兩個(gè)初始數(shù)據(jù)元素

這個(gè)shoppingList變量通過String[]形式被聲明為一個(gè)String類型值的數(shù)組,因?yàn)檫@個(gè)特定的數(shù)組被指定了值類型String,所以我們只能用這個(gè)數(shù)組類存儲(chǔ)String值,這里我們存儲(chǔ)了兩個(gè)字面常量String值(“Eggs”和“Milk”)。

提示
這個(gè)shoppingList是聲明為變量(var說明符)而不是聲明為常量(let說明符),因?yàn)楹竺娴睦永飳⒂懈嗟脑乇患尤脒@個(gè)數(shù)組.

這里,這個(gè)字面常量數(shù)組只包含了2個(gè)String值,他能匹配shoppingList數(shù)組的類型聲明,所以可以用他來給shoppingList變量賦值初始化。
得益于Swift的類型推斷機(jī)制,我們?cè)谟脭?shù)組字面常量來初始化一個(gè)數(shù)組時(shí)不需要明確指定他的類型,用如下這個(gè)很方便的方式:

var shoppingList = ["Eggs", "Milk"]

因?yàn)檫@個(gè)字面常量數(shù)組里的都是相同類型值,Swift編譯器可以推斷出該數(shù)組變量正確的數(shù)據(jù)類型是String[]

數(shù)組元素的存取

我們可以通過數(shù)組的方法或者屬性或者下標(biāo)運(yùn)算符來對(duì)一個(gè)數(shù)組進(jìn)行訪問和修改。

要得到一個(gè)數(shù)組的元素的個(gè)數(shù),我們可以用他的只讀屬性count來獲取。

println("Tht shopping list contains \(shoppingList.count) items.")// prints "The shopping list contains 2 items."

數(shù)組有一個(gè)叫做isEmpty的屬性來表示該數(shù)組是否為空,即count屬性等于 0:

if shoppingList.isEmpty {    println("The shopping list is empty.")
} else {    println("Tht shopping list is not empty.")
}// prints "The shopping list is not empty."

我們可以調(diào)用數(shù)組的append方法在數(shù)組的末尾追加一個(gè)新的元素:

shoppingList.append("Flour")// shoppingList now contains 3 items, and someone is making pancakes

或者更簡(jiǎn)單的達(dá)到這一目的,可以用符合運(yùn)算符(+=):

shoppingList += "Baking Powder"http://shoppingList now contains 4 items

我們還有可以直接給一個(gè)數(shù)組加上另一個(gè)類型一致的數(shù)組:

shoppingList += ["Chocolate Spread", "Cheese", "Butter"]// shoppingList now contains 7 items

Swift數(shù)組的下標(biāo)運(yùn)算和其他語言類似,下標(biāo)都是從 0 開始,我們可以直接用下標(biāo)來存取數(shù)組里面的元素; 此外,Swift的數(shù)組新增了一個(gè)功能就是可以通過下標(biāo)來進(jìn)行區(qū)間賦值了

var firstItem = shoppingList[0]// firstItem is equal to "Eggs"shoppingList[0] = "Six eggs"http:// the first item in the list is now equal to "Six eggs" rather than "Eggs"

提示
我們不能用下標(biāo)的形式來給一個(gè)數(shù)組追加一個(gè)或者多個(gè)新的元素。如果下標(biāo)越界將會(huì)觸發(fā)一個(gè)運(yùn)行時(shí)的錯(cuò)誤,所以我們?cè)谟孟聵?biāo)進(jìn)行運(yùn)算的時(shí)候時(shí)刻要記得去檢測(cè)我們所用的下標(biāo)是否越界,可以通過比較我們的下標(biāo)index是否大于最大的有效的下標(biāo)值(count - 1

數(shù)組的插入和刪除
當(dāng)我們需要在數(shù)組的某個(gè)地方插入一個(gè)新的元素的時(shí)候,可以調(diào)用數(shù)組的方法insert(atIndex:);

shoppingList.insert("Maple Syrup", atIndex: 0)// shoppingList now contains 7 items// "Maple Syrup" is now the first item in the list

當(dāng)我們需要在數(shù)組的某個(gè)地方移除一個(gè)既有元素的時(shí)候,可以調(diào)用數(shù)組的方法removeAtIndex,該方法的返回值是被移除掉的元素;

let mapleSyrup = shoppingList.removeAtIndex(0)// the item that was at index 0 has just been removed// shoppingList now contains 6 items, and no Maple Syrup// the mapleSyrup constant is now equal to the removed "Maple Syrup" string

當(dāng)特殊情況我們需要移除數(shù)組的最后一個(gè)元素的時(shí)候,我們應(yīng)該避免使用removeAtIndex方法,而直接使用簡(jiǎn)便方法removeLast來直接移除數(shù)組的最后一個(gè)元素,removeLast方法也是返回被移除的元素。

let apples = shoppingList.removeLast()// the last item in the array has just been removed// shoppingList now contains 5 items, and no cheese// the apples constant is now equal to the removed "Apples" string
數(shù)組元素的遍歷

在Swift語言里,我們可以用快速枚舉(for-in)的方式來遍歷整個(gè)數(shù)組的元素:

for item in shoppingList {    println(item)
}// Six eggs// Milk// Flour// Baking Powder// Bananas

如果在快速枚舉的循環(huán)體內(nèi)部需要獲取每個(gè)元素所對(duì)應(yīng)的序號(hào),我們可以嵌套一個(gè)全局方法enumerate來代替數(shù)組遍歷,該方法為數(shù)組里的每一項(xiàng)返回一個(gè)封裝了序號(hào)與元素值的元組類型變量,我們可以在快速枚舉遍歷過程中把該元組里的值提取到合適的臨時(shí)變量或者常量中:

for (index, value) in enumerate(shoppingList) {    println("Item \(index + 1): \(value)")
}// Item 1: Six eggs// Item 2: Milk// Item 3: Flour// Item 4: Baking Powder// Item 5: Bananas
數(shù)組創(chuàng)建與初始化

我們可以用如下的語法來初始化一個(gè)確定類型的空的數(shù)組(沒有設(shè)置任何初始值):

var someInts = Int[]()println("someInts is of type Int[] with \(someInts.count) items.")// prints "someInts is of type Int[] with 0 items.

變量someInts的類型會(huì)被推斷為Int[],因?yàn)樗毁x值為一個(gè)Int[]類型的初始化方法的結(jié)果。
如果程序的上下文已經(jīng)提供了其類型信息,比如一個(gè)函數(shù)的參數(shù),已經(jīng)申明了類型的變量或者常量,這樣你可以用一個(gè)空數(shù)組的字面常量去給其賦值一個(gè)空的數(shù)組(這樣寫[]):

someInts.append(3)// someInts now contains 1 value of type IntsomeInts = []// someInts is now an empty array, but is still of type Int[]

Swift的數(shù)組同樣也提供了一個(gè)創(chuàng)建指定大小并指定元素默認(rèn)值的初始化方法,我們只需給初始化方法的參數(shù)傳遞元素個(gè)數(shù)(count)以及對(duì)應(yīng)默認(rèn)類型值(repeatedValue):

var threeDoubles = Double[](count: 3, repeatedValue: 0.0)// threeDoubles is of type Double[], and equals [0.0, 0.0, 0.0]

同樣得益于Swift語言的類型推斷,我們?cè)谟眠@個(gè)初始化方法的時(shí)候也可以不需要指定數(shù)組里面所存儲(chǔ)元素類型,他會(huì)自動(dòng)去判斷那個(gè)提供的默認(rèn)值的類型:

var anotherThreeDoubles = Array(count: 3, repeatedValue: 2.5)// anotherThreeDoubles is inferred as Double[], and equals [2.5, 2.5, 2.5]

最后,我們數(shù)組也可以像字符串那樣,可以把兩個(gè)已有的類型一致的數(shù)組相加得到一個(gè)新的數(shù)組,新數(shù)組的類型由兩個(gè)相加的數(shù)組的類型推斷而來:

var sixDoubles = threeDoubles + anotherThreeDoubles// sixDoubles is inferred as Double[], and equals [0.0, 0.0, 0.0, 2.5, 2.5, 2.5]

好吧,關(guān)于Swift語言的數(shù)組的學(xué)習(xí),大茶哥只能幫你到這了。戴維營(yíng)教育的伙計(jì)們,發(fā)奮圖強(qiáng)吧。


分享題目:Swift編程高級(jí)教程(三)集合類型-數(shù)組
網(wǎng)站鏈接:http://weahome.cn/article/jpiehh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部