Smart Device59 Swift extension #5 subscript 확장 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 5746381295[1]// returns 9746381295[2]// returns 2746381295[8]// retu.. 2015. 6. 25. Swift extension #4 Mutating Instance Methods Mutating Instance Methodsextension을 사용하면 인스턴스 자체를 수정할 수 있다. 이런 경우에는 인스턴스 자체를 수정하는 Method 앞에mutating 키워드를 사용하면 된다. 예extension Int { mutating func square() { self = self * self }}var someInt = 3someInt.square()// someInt is now 9 2015. 6. 25. Swift extension #3 Method의 확장 Method의 확장 예extension Int { func repetitions(task: () -> Void) { for _ in 0.. 2015. 6. 25. Swift extension #2 Initializers의 확장 Initializers의 확장 struct Size { var width = 0.0, height = 0.0}struct Point { var x = 0.0, y = 0.0}struct Rect { var origin = Point() var size = Size()} let defaultRect = Rect()let memberwiseRect = Rect(origin: Point(x: 2.0, y: 2.0), size: Size(width: 5.0, height: 5.0)) extension Rect { init(center: Point, size: Size) { let originX = center.x - (size.width / 2) let originY = center.y - (size.heigh.. 2015. 6. 25. 이전 1 2 3 4 5 6 7 ··· 15 다음