The Swift Programming Language. Extensions (2)
Methods 익스텐션은 이미 존재하는 타입에 새 인스턴스 메소드와 타입 메소드를 추가할 수 있다. 다음의 예시는 새 인스턴스 메소드 repetitions을 Int 타입에 추가한다. extension Int { func repetitions(task: () -> Void) { for _ in 0..<self { task() } } } repetitions(task:) 메소드는 하나의 () -> Void 타입 아규먼트를 받는다. 이 익스텐션을 정의한 후에는 repetitions(task:)메소드를 어떠한 정수에서도 호출할 수 있다. 3.repetitions { print("Hello!") } // Hello! // Hello! // Hello! Mutating Instance Methods 익스텐션에서 추가된 인스턴스 메소드는 인스턴스 자체를 수정(mutate)할 수도 있다. self나 self의 프로퍼티를 수정하는 스트럭처나 열거형은 메소드도 기존 구현의 뮤테이팅 메소드처럼 반드시 mutating으로 지정되어야 한다. ...