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&&columnDouble{
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能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对毛票票的支持。