擴(kuò)展可以向一個(gè)已有類型添加新下標(biāo)。這個(gè)例子向Swift內(nèi)建類型Int添加了一個(gè)整型下標(biāo)。該下標(biāo)[n]返回十進(jìn)制數(shù)字從右向左數(shù)的第n個(gè)數(shù)字
...等等
extension Int {
subscript(digitIndex: Int) -> Int {
var decimalBase = 1
for _ in 1...digitIndex {
decimalBase *= 10
}
return (self / decimalBase) % 10
}
}
746381295[0]
// returns 5
746381295[1]
// returns 9
746381295[2]
// returns 2
746381295[8]
// returns 7
如果該Int值沒有足夠的位數(shù),即下標(biāo)越界,那么上述實(shí)現(xiàn)的下標(biāo)會(huì)返回0,因?yàn)樗鼤?huì)在數(shù)字左邊自動(dòng)補(bǔ)0:
746381295[9]
//returns 0, 即等同于:
0746381295[9]