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

詳解Swift中的下標(biāo)訪(fǎng)問(wèn)用法

 更新時(shí)間:2016年07月05日 18:47:52   作者:琿少  
在Swift中我們可以用subscript函數(shù)來(lái)定義下標(biāo),從而通過(guò)下標(biāo)來(lái)訪(fǎng)問(wèn)數(shù)組與字典等數(shù)據(jù)結(jié)構(gòu),這里我們就來(lái)詳解Swift中的下標(biāo)訪(fǎng)問(wèn)用法:

Swift中的Array,Dictionary類(lèi)型可以通過(guò)下標(biāo)或者鍵值的方式來(lái)進(jìn)行數(shù)據(jù)的訪(fǎng)問(wèn),實(shí)際上在Swift的語(yǔ)法中,下標(biāo)可以定義在類(lèi)、結(jié)構(gòu)體、枚舉中。開(kāi)發(fā)者可以通過(guò)下標(biāo)的方式來(lái)對(duì)屬性進(jìn)行訪(fǎng)問(wèn)而不用使用專(zhuān)門(mén)的存取方法。并且定義的下標(biāo)不限于一維,開(kāi)發(fā)者可以定義多維的下標(biāo)來(lái)滿(mǎn)足需求。

下標(biāo)的語(yǔ)法結(jié)構(gòu)

 下標(biāo)使用subscript來(lái)定義,其有些類(lèi)似于方法,參數(shù)和返回值本別作為下標(biāo)入?yún)⒑屯ㄟ^(guò)下標(biāo)所取的值。但是在subscript實(shí)現(xiàn)部分,又十分類(lèi)似于計(jì)算屬性,其需要實(shí)現(xiàn)一個(gè)get塊和可選實(shí)現(xiàn)一個(gè)set塊,get塊用于使用下標(biāo)取值,set塊用于使用下標(biāo)設(shè)置值,因此,subscript結(jié)構(gòu)更像是計(jì)算屬性和方法的混合體,示例如下:

class MyClass {
  var array=[1,1,1,1,1]
  subscript(param1:Int)->Int{
    set{
      array[param1] = newValue
    }
    get{
      return array[param1]
    }
  }
}
var obj = MyClass()
obj[0] = 3

開(kāi)發(fā)者可以只編寫(xiě)get塊來(lái)實(shí)現(xiàn)只讀的下標(biāo)訪(fǎng)問(wèn)。對(duì)于多維下標(biāo)的訪(fǎng)問(wèn)方式,只需修改subscript中的參數(shù)個(gè)數(shù)即可,示例如下:
class MyClass {
  var array=[1,1,1,1,1]
  subscript(param1:Int,param2:Int)->Int{
    set{
      array[param1] = newValue
    }
    get{
      return array[param1]
    }
  }
}
var obj = MyClass()
obj[0,1] = 3

下標(biāo)的特性

Swift中的下標(biāo)可以自定參數(shù)個(gè)數(shù)和參數(shù)類(lèi)型,返回?cái)?shù)據(jù)的類(lèi)型開(kāi)發(fā)者也可以進(jìn)行自定義。但是有一點(diǎn)需要注意,下標(biāo)的參數(shù)不能設(shè)置默認(rèn)值,也不能設(shè)置為in-out類(lèi)型。多維下標(biāo)常用語(yǔ)行列數(shù)據(jù)的訪(fǎng)問(wèn),示例如下:

class SectionAndRow {
  var array:Array<Array<Int>> = [ [1,2]
                  ,[3,4]
                  ,[5,6]
                  ,[7,8]
                 ]
  subscript(section:Int,row:Int)->Int{
    get{
      let temp = array[section]
      return temp[row]
    }
  }
  
}
var data = SectionAndRow()
//通過(guò)二維下標(biāo)取值
data[1,1]

相關(guān)文章

  • Swift操作Quartz 2D進(jìn)行簡(jiǎn)單的繪圖與坐標(biāo)變換的教程

    Swift操作Quartz 2D進(jìn)行簡(jiǎn)單的繪圖與坐標(biāo)變換的教程

    這篇文章主要介紹了Swift操作Quartz 2D進(jìn)行簡(jiǎn)單的繪圖與坐標(biāo)變換的教程,Quartz 2D是Core Graphics框架中的一個(gè)重要組件,經(jīng)常被Mac OS或和iOS開(kāi)發(fā)者用來(lái)繪圖,需要的朋友可以參考下
    2016-04-04
  • Swift初始化方法的使用介紹

    Swift初始化方法的使用介紹

    Swift有著超級(jí)嚴(yán)格的初始化方法,不僅強(qiáng)化了designated初始化方法的地位,所有不加修飾的init方法都需要在方法中確保非Optional的實(shí)例變量被賦值初始化,下面這篇文章主要給大家介紹了關(guān)于Swift中初始化init的相關(guān)資料,需要的朋友可以參考下。
    2022-08-08
  • SwiftUI?List在MacOS中的性能優(yōu)化示例

    SwiftUI?List在MacOS中的性能優(yōu)化示例

    這篇文章主要為大家介紹了SwiftUI?List在MacOS中的性能優(yōu)化示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • Swift繼承Inheritance淺析介紹

    Swift繼承Inheritance淺析介紹

    繼承我們可以理解為一個(gè)類(lèi)獲取了另外一個(gè)類(lèi)的方法和屬性。當(dāng)一個(gè)類(lèi)繼承其它類(lèi)時(shí),繼承類(lèi)叫子類(lèi),被繼承類(lèi)叫超類(lèi)(或父類(lèi)),在Swift中,類(lèi)可以調(diào)用和訪(fǎng)問(wèn)超類(lèi)的方法,屬性和下標(biāo)腳本,并且可以重寫(xiě)它們。我們也可以為類(lèi)中繼承來(lái)的屬性添加屬性觀察器
    2022-08-08
  • Swift實(shí)現(xiàn)Selection Sort選擇排序算法的實(shí)例講解

    Swift實(shí)現(xiàn)Selection Sort選擇排序算法的實(shí)例講解

    選擇排序是一種穩(wěn)定的排序算法,且實(shí)現(xiàn)代碼通常比冒泡排序要來(lái)的簡(jiǎn)單,這里我們就來(lái)看一下Swift實(shí)現(xiàn)Selection Sort選擇排序的實(shí)例講解
    2016-07-07
  • Swift Extension擴(kuò)展得使用詳細(xì)介紹

    Swift Extension擴(kuò)展得使用詳細(xì)介紹

    在swift中,extension與Objective-C的category有點(diǎn)類(lèi)似,但是extension比起category來(lái)說(shuō)更加強(qiáng)大和靈活,它不僅可以擴(kuò)展某種類(lèi)型或結(jié)構(gòu)體的方法,同時(shí)它還可以與protocol等結(jié)合使用,編寫(xiě)出更加靈活和強(qiáng)大的代碼
    2022-09-09
  • Swift3.0剪切板代碼拷貝及跨應(yīng)用粘貼實(shí)現(xiàn)代碼

    Swift3.0剪切板代碼拷貝及跨應(yīng)用粘貼實(shí)現(xiàn)代碼

    這篇文章主要為大家詳細(xì)介紹了Swift3.0剪切板代碼拷貝及跨應(yīng)用粘貼的實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • swift計(jì)步器CMPedometer的使用方法

    swift計(jì)步器CMPedometer的使用方法

    這篇文章主要為大家詳細(xì)介紹了swift計(jì)步器CMPedometer的使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • R.swift的使用與安裝教程

    R.swift的使用與安裝教程

    這篇文章主要給大家介紹了關(guān)于R.swift使用與安裝的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • SwiftUI使用Paths和AnimatableData實(shí)現(xiàn)酷炫的顏色切換動(dòng)畫(huà)

    SwiftUI使用Paths和AnimatableData實(shí)現(xiàn)酷炫的顏色切換動(dòng)畫(huà)

    這篇文章主要介紹了SwiftUI使用Paths和AnimatableData實(shí)現(xiàn)酷炫的顏色切換動(dòng)畫(huà),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2020-05-05

最新評(píng)論

庐江县| 寿光市| 岚皋县| 尚义县| 亚东县| 沧源| 丹棱县| 壤塘县| 衢州市| 天长市| 黄龙县| 通江县| 台东市| 当雄县| 陈巴尔虎旗| 仁化县| 弥勒县| 青神县| 清苑县| 道真| 新和县| 巴塘县| 汤阴县| 义马市| 开鲁县| 通州区| 青铜峡市| 威信县| 尤溪县| 湾仔区| 韶山市| 临汾市| 绥阳县| 遂昌县| 育儿| 四会市| 阳高县| 饶平县| 叶城县| 图木舒克市| 琼海市|