詳解Swift中的下標訪問用法
Swift中的Array,Dictionary類型可以通過下標或者鍵值的方式來進行數(shù)據(jù)的訪問,實際上在Swift的語法中,下標可以定義在類、結構體、枚舉中。開發(fā)者可以通過下標的方式來對屬性進行訪問而不用使用專門的存取方法。并且定義的下標不限于一維,開發(fā)者可以定義多維的下標來滿足需求。
下標的語法結構
下標使用subscript來定義,其有些類似于方法,參數(shù)和返回值本別作為下標入參和通過下標所取的值。但是在subscript實現(xiàn)部分,又十分類似于計算屬性,其需要實現(xiàn)一個get塊和可選實現(xiàn)一個set塊,get塊用于使用下標取值,set塊用于使用下標設置值,因此,subscript結構更像是計算屬性和方法的混合體,示例如下:
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
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
下標的特性
Swift中的下標可以自定參數(shù)個數(shù)和參數(shù)類型,返回數(shù)據(jù)的類型開發(fā)者也可以進行自定義。但是有一點需要注意,下標的參數(shù)不能設置默認值,也不能設置為in-out類型。多維下標常用語行列數(shù)據(jù)的訪問,示例如下:
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()
//通過二維下標取值
data[1,1]
相關文章
Swift操作Quartz 2D進行簡單的繪圖與坐標變換的教程
這篇文章主要介紹了Swift操作Quartz 2D進行簡單的繪圖與坐標變換的教程,Quartz 2D是Core Graphics框架中的一個重要組件,經常被Mac OS或和iOS開發(fā)者用來繪圖,需要的朋友可以參考下2016-04-04
SwiftUI?List在MacOS中的性能優(yōu)化示例
這篇文章主要為大家介紹了SwiftUI?List在MacOS中的性能優(yōu)化示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-09-09
Swift實現(xiàn)Selection Sort選擇排序算法的實例講解
選擇排序是一種穩(wěn)定的排序算法,且實現(xiàn)代碼通常比冒泡排序要來的簡單,這里我們就來看一下Swift實現(xiàn)Selection Sort選擇排序的實例講解2016-07-07
Swift3.0剪切板代碼拷貝及跨應用粘貼實現(xiàn)代碼
這篇文章主要為大家詳細介紹了Swift3.0剪切板代碼拷貝及跨應用粘貼的實現(xiàn)代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-03-03
SwiftUI使用Paths和AnimatableData實現(xiàn)酷炫的顏色切換動畫
這篇文章主要介紹了SwiftUI使用Paths和AnimatableData實現(xiàn)酷炫的顏色切換動畫,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧2020-05-05

