본문 바로가기
Smart Device/Swift

Swift extension #5 subscript 확장

by 언덕너머에 2015. 6. 25.

subscript 확장


extension을 사용하여 기존의 타입에 새로운 서브스크립트를 추가할 수 있다. 예를 들어, 123456789[0]을 입력하면

123456789 중에서 오른쪽부터 0번째 있는 숫자를 리턴하라는 형태로 기능을 추가할 수 있다.


  1. extension Int {
  2. subscript(var digitIndex: Int) -> Int {
  3. var decimalBase = 1
  4. while digitIndex > 0 {
  5. decimalBase *= 10
  6. --digitIndex
  7. }
  8. return (self / decimalBase) % 10
  9. }
  10. }
  11. 746381295[0]
  12. // returns 5
  13. 746381295[1]
  14. // returns 9
  15. 746381295[2]
  16. // returns 2
  17. 746381295[8]
  18. // returns 7
  19. 746381295[9]
  20. // returns 0, as if you had requested:
  21. 0746381295[9]

 int형일 경우 요청된 인덱스만큼 충분한 숫자가 없을 경우 746381295[9]처럼 0을 리턴한다. 이경우는 다음과 같다. 
0746381295[9]