subscript 확장
extension을 사용하여 기존의 타입에 새로운 서브스크립트를 추가할 수 있다. 예를 들어, 123456789[0]을 입력하면
123456789 중에서 오른쪽부터 0번째 있는 숫자를 리턴하라는 형태로 기능을 추가할 수 있다.
예
extension Int {
subscript(var digitIndex: Int) -> Int {
var decimalBase = 1
while digitIndex > 0 {
decimalBase *= 10
--digitIndex
}
return (self / decimalBase) % 10
}
}
746381295[0]
// returns 5
746381295[1]
// returns 9
746381295[2]
// returns 2
746381295[8]
// returns 7
746381295[9]
// returns 0, as if you had requested:
0746381295[9]
int형일 경우 요청된 인덱스만큼 충분한 숫자가 없을 경우 746381295[9]처럼 0을 리턴한다. 이경우는 다음과 같다.
0746381295[9]
'Smart Device > Swift' 카테고리의 다른 글
Swift extension #6 Nested Types (0) | 2015.06.25 |
---|---|
Swift extension #4 Mutating Instance Methods (0) | 2015.06.25 |
Swift extension #3 Method의 확장 (0) | 2015.06.25 |
Swift extension #2 Initializers의 확장 (0) | 2015.06.25 |
Swift extension #1 기존 자료형의 확장 (0) | 2015.06.25 |