擴展可以向一個已有類型添加新下標。這個例子向Swift內(nèi)建類型Int添加了一個整型下標。該下標[n]返回十進制數(shù)字從右向左數(shù)的第n個數(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ù),即下標越界,那么上述實現(xiàn)的下標會返回0,因為它會在數(shù)字左邊自動補0:
746381295[9]
//returns 0, 即等同于:
0746381295[9]