Swift 3.0基础学习之下标
前言
类,结构体和枚举都可以定义下标,使用下标可以快速访问集合,列表或者序列的数据成员元素。可以使用someArray[index]来访问Array,使用someDictionary[key]来访问Dictionary。
一个类型可以定义多个下标。
定义一个getset的下标:
subscript(index:Int)->Int{ get{ //returnanappropriatesubscriptvaluehere } set(newValue){ //performasuitablesettingactionhere } }
定义一个read-only的下标
subscript(index:Int)->Int{ //returnanappropriatesubscriptvaluehere }
例子:
structTimesTable{ letmultiplier:Int subscript(index:Int)->Int{ returnmultiplier*index } } letthreeTimesTable=TimesTable(multiplier:3) print("sixtimesthreeis\(threeTimesTable[6])") //Prints"sixtimesthreeis18"
还可以使用多个下标,任何类型,除了in-out类型的参数
structMatrix{ letrows:Int,columns:Int vargrid:[Double] init(rows:Int,columns:Int){ self.rows=rows self.columns=columns grid=Array(repeating:0.0,count:rows*columns) } funcindexIsValid(row:Int,column:Int)->Bool{ returnrow>=0&&row=0&&column Double{ get{ assert(indexIsValid(row:row,column:column),"Indexoutofrange") returngrid[(row*columns)+column] } set{ assert(indexIsValid(row:row,column:column),"Indexoutofrange") grid[(row*columns)+column]=newValue } } }
参考翻译英语原文:
https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/Subscripts.html#//apple_ref/doc/uid/TP40014097-CH16-ID305
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者使用Swift能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对毛票票的支持。