最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Swift中內(nèi)置的集合類型學(xué)習(xí)筆記

 更新時(shí)間:2016年06月23日 18:16:19   作者:琿少  
Swift中自帶數(shù)組、set、字典三大集合類型,這里將學(xué)習(xí)過程中的基礎(chǔ)的Swift中內(nèi)置的集合類型學(xué)習(xí)筆記進(jìn)行整理,需要的朋友可以參考下

一、引言

Swift中提供了3種集合類型,Array數(shù)據(jù)類型,Set集合類型,Dictionary字典類型。Array用于存放一組有序的數(shù)據(jù),數(shù)據(jù)角標(biāo)從0開始一次遞增;Set用于存放一組無序的數(shù)據(jù),數(shù)據(jù)不可以重復(fù);Dictionary也用于存放一組無序的數(shù)據(jù),只是其是按照鍵值對的方式存儲,鍵值必須唯一。這里借用官方文檔中的一張圖來表示3種集合類型的特點(diǎn):

2016623180242241.png (1340×475)

二、Array類型

Array通常也被稱為數(shù)組,Swift是一種類型安全語言,其中的Array類型也必須確定其元素的類型,聲明數(shù)組類型有兩種方法,示例如下:

//將數(shù)組聲明為Int類型值集合的數(shù)組
var array1:[Int]
var array2:Array<Int>
//創(chuàng)建空數(shù)組
array1 = []
array2 = Array()

數(shù)組對象如果通過var變量也接收,則其為可變的數(shù)組,可以通過append方法來追加元素,示例如下:

//向數(shù)組中追加元素
array1.append(3)

在創(chuàng)建數(shù)組時(shí),也可以對數(shù)組進(jìn)行初始化,示例如下:

//創(chuàng)建數(shù)組[0,0,0]
var array3 = [Double](count: 3, repeatedValue: 0)
//創(chuàng)建數(shù)組[2.5,2.5,2.5]
var array4 = Array(count: 3, repeatedValue: 2.5)
//數(shù)組可以使用+號直接進(jìn)行追加 [0,0,0,2.5,2.5,2.5]
var array5 = array3+array4

Swift中提供了許多訪問和修改數(shù)組的方法,示例代碼如下:

//獲取數(shù)組中元素個(gè)數(shù)
array5.count
//判斷數(shù)組是否為空
array5.isEmpty
//通過下標(biāo)訪問數(shù)組中的元素
array5[1]
//通過下標(biāo)修改數(shù)組元素
array5[1]=2
//修改數(shù)據(jù)中的一組數(shù)據(jù)
array5[0...3] = [1,1,1,1]
//向數(shù)組中某個(gè)位置插入一個(gè)數(shù)據(jù)
array5.insert(3, atIndex: 1)
//移除數(shù)組某個(gè)角標(biāo)處的元素
array5.removeAtIndex(1)
//移除數(shù)組的最后一個(gè)元素
array5.removeLast()
//移除數(shù)組第一個(gè)元素
array5.removeFirst()
//遍歷整個(gè)數(shù)組
for item in array5 {
  print(item)
}
//遍歷數(shù)組枚舉
for (index,item) in array5.enumerate() {
  print(index,item)
}

三、Set類型

Set類型集合不關(guān)注元素的順序,但是其可以保證其中元素的唯一性。和Array類型一樣,Set類型來聲明時(shí)也需要確定其內(nèi)元素的類型,示例如下:

var set1:Set<Character> = ["a","b","c","d"]

下面示例代碼演示對集合進(jìn)行操作:

var set1:Set<Character> = ["a","b","c","d"]
var set2:Set<Character> = ["e","f","g"]
//向集合中插入元素
set1.insert("z")
//獲取集合中元素個(gè)數(shù)
set1.count
//判斷集合是否為空
set1.isEmpty
//將集合中的某個(gè)元素移除
set1.remove("a")
//移除集合中的所有元素
set1.removeAll()
//判斷集合中是否包含某個(gè)元素
set2.contains("e")
//遍歷集合
for item in set2 {
  print(item)
}
//進(jìn)行從小到大的排序遍歷
for item in set2.sort() {
  print(item)
}

Set也支持進(jìn)行一些集合的數(shù)學(xué)運(yùn)算,例如交集,并集,補(bǔ)集等,下面一張圖演示了Set進(jìn)行集合運(yùn)算的一些特性:

2016623180122132.png (1122×851)

  • intersect()方法返回兩個(gè)集合的交集。
  • exclusiveOr()方法用于返回兩個(gè)集合交集的補(bǔ)集。
  • union()方法用于返回兩個(gè)集合的并集。
  • subtract()方法用于返回第二個(gè)集合的補(bǔ)集。

示例代碼如下:

var set3:Set<Int> = [1,2,3,4]
var set4:Set<Int> = [1,2,5,6]
//返回交集 {1,2}
var setInter = set3.intersect(set4)
//返回交集的補(bǔ)集{3,4,5,6}
var setEx = set3.exclusiveOr(set4)
//返回并集{1,2,3,4,5,6}
var setUni = set3.union(set4)
//返回第二個(gè)集合的補(bǔ)集{3,4}
var setSub = set3.subtract(set4)

使用比較運(yùn)算符==可以比較兩個(gè)Set集合是否相等,當(dāng)兩個(gè)Set集合中所有元素都相等時(shí),這兩個(gè)集合才相等。下面代碼顯示了與子集相關(guān)的運(yùn)算:

var set5:Set = [1,2]
var set6:Set = [2,3]
var set7:Set = [1,2,3]
var set8:Set = [1,2,3]
//判斷是否是某個(gè)集合的子集 set5是set7的子集 返回ture
set5.isSubsetOf(set7)
//判斷是否是某個(gè)集合的超集 set7是set5的超集 返回ture
set7.isSupersetOf(set5)
//判斷是否是某個(gè)集合的真子集 set5是set7的真子集 返回ture
set5.isStrictSubsetOf(set7)
//判斷是否是某個(gè)集合的真超集 set7不是set8的真超集 返回false
set7.isStrictSupersetOf(set8)

四、Dictionary類型

Swift中的Dictionary在聲明時(shí)必須明確鍵的類型和值的類型,示例如下:

var dic:Dictionary<Int,String>
var dic2:[Int:String] = [1:"one",2:"Two"]

訪問與操作Dictionary的方法,代碼示例如下:

var dic2:[Int:String] = [1:"One",2:"Two",3:"Three",4:"Four"]
//獲取字典鍵值對個(gè)數(shù)
dic2.count
//判斷字典是否為空
dic2.isEmpty
//通過鍵獲取值
dic2[1]
//通過鍵修改值
dic2[1] = "First"
//添加鍵值
dic2[0] = "Zero"
//updateValue 方法將更新一個(gè)鍵值 如果此鍵存在 則更新鍵值 并且將舊的鍵值返回 如果此鍵不存在 則添加鍵值 返回nil 其返回的為一個(gè)Optional類型值 可以使用if let進(jìn)行處理
dic2.updateValue("9", forKey: 1)
//使用if let 處理updateValue的返回值
if let oldValue = dic2.updateValue("One", forKey: 1) {
  print("Old Value is \(oldValue)")
}
//通過鍵值獲取的數(shù)據(jù)也將是有個(gè)Optional類型的值 也可以使用if let
if let value = dic2[1] {
  print("The Value is \(value)")
}
//移除某個(gè)鍵值對
dic2[9]=nil
dic2.removeValueForKey(9)
//對字典進(jìn)行遍歷
for (key,value) in dic2 {
  print(key,value)
}
//遍歷所有鍵
for key in dic2.keys {
  print(key)
}
//遍歷所有值
for value in dic2.values {
  print(value)
}
//進(jìn)行從小到大的排序遍歷
for key in dic2.keys.sort() {
  print(key)
}

相關(guān)文章

  • Swift如何在應(yīng)用中添加圖標(biāo)更換功能的方法

    Swift如何在應(yīng)用中添加圖標(biāo)更換功能的方法

    本篇文章主要介紹了Swift如何在應(yīng)用中添加圖標(biāo)更換功能的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-02-02
  • 深入講解Swift的內(nèi)存管理

    深入講解Swift的內(nèi)存管理

    不管在什么語言里,內(nèi)存管理的內(nèi)容都很重要,Swift使用自動引用計(jì)數(shù)來管理應(yīng)用程序的內(nèi)存使用。這表示內(nèi)存管理已經(jīng)是Swift的一部分,在大多數(shù)情況下,你并不需要考慮內(nèi)存的管理。本文主要介紹了Swift中內(nèi)存管理的相關(guān)資料,需要的朋友可以參考。
    2017-03-03
  • Swift中的HTTP模擬測試示例詳解

    Swift中的HTTP模擬測試示例詳解

    這篇文章主要為大家介紹了Swift中的HTTP模擬測試示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • Swift?Error重構(gòu)的基礎(chǔ)示例詳解

    Swift?Error重構(gòu)的基礎(chǔ)示例詳解

    這篇文章主要為大家介紹了Swift?Error基礎(chǔ)錯(cuò)誤處理的方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • Swift中通知中心(NotificationCenter)的使用示例

    Swift中通知中心(NotificationCenter)的使用示例

    這篇文章主要給大家介紹了關(guān)于Swift中通知中心(NotificationCenter)使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-10-10
  • Swift枚舉的一些小用法總結(jié)

    Swift枚舉的一些小用法總結(jié)

    這篇文章主要給大家介紹了關(guān)于Swift枚舉的一些小用法,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Swift具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Swift類型創(chuàng)建之自定義一個(gè)類型詳解

    Swift類型創(chuàng)建之自定義一個(gè)類型詳解

    這篇文章主要介紹了Swift類型創(chuàng)建之自定義一個(gè)類型詳解,本文講解了自定義原型、實(shí)現(xiàn)默認(rèn)值、支持基本布爾型初始化、支持Bool類型判斷、支持兼容各們各派的類型、完善OCBool的布爾基因體系等內(nèi)容,需要的朋友可以參考下
    2015-05-05
  • Swift心得筆記之運(yùn)算符

    Swift心得筆記之運(yùn)算符

    區(qū)別于 C 語言,在 Swift 中你可以對浮點(diǎn)數(shù)進(jìn)行取余運(yùn)算(%),Swift 還提供了 C 語言沒有的表達(dá)兩數(shù)之間的值的區(qū)間運(yùn)算符,(a..b和a...b),這方便我們表達(dá)一個(gè)區(qū)間內(nèi)的數(shù)值。
    2015-04-04
  • swift4 使用DrawerController實(shí)現(xiàn)側(cè)滑菜單功能的示例代碼

    swift4 使用DrawerController實(shí)現(xiàn)側(cè)滑菜單功能的示例代碼

    這篇文章主要介紹了swift4 使用DrawerController實(shí)現(xiàn)側(cè)滑功能的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-06-06
  • Swift利用Decodable解析JSON的一個(gè)小問題詳解

    Swift利用Decodable解析JSON的一個(gè)小問題詳解

    這篇文章主要給大家介紹了關(guān)于Swift利用Decodable解析JSON的一個(gè)小問題的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-04-04

最新評論

恩施市| 双桥区| 林西县| 华坪县| 扎鲁特旗| 延庆县| 新沂市| 重庆市| 柞水县| 万载县| 新兴县| 东源县| 剑河县| 清镇市| 海口市| 开平市| 舒城县| 汾阳市| 岳阳县| 永新县| 连城县| 抚远县| 盘锦市| 顺义区| 遵义市| 汤阴县| 绥芬河市| 奈曼旗| 台北市| 游戏| 广河县| 岳池县| 三门峡市| 延津县| 石柱| 左贡县| 松滋市| 武清区| 许昌县| 施秉县| 巴林右旗|