subscript(index:Int) -> Int{
get{
//返回与入参匹配的Int类型的值
}
set(newValue) {
//执行赋值操作
}
}
例子:
struct TimesTable {
let multiplier: Int
subscript(Index:Int)->Int{
return multiplier * Index
}
}
let threeTimesTable = TimesTable(multiplier: 3)
print("3的6倍是\(threeTimesTable[6])")
注意:在下标脚本的两个方法设置。
扩展:
倒序打印出整型数,该下标[n]返回十进制数字从右向左的第n个数字。
extension Int {
subscript(Index:Int) ->Int{
var decimalBase = 1
for _ in 0 ... Index{
decimalBase *= 10
//第n个下标的10的倍数是n*10,例如:5,就是10的6次方,从0-5共6次
}
return (self/decimalBase) % 10
//1234567除以10的6次方等于1.234567,再除以10求剩下的余数,则等于1
}
}
print(1234567[5])
输出结果
1