Home » custom operator

custom operator

(Swift) Swift3의 커스텀 연산자 정의 변경점

Swift 3에 도입된 변화 중 하나는 연산자 정의 방식이 변경된 것이다. 이전버전까지는 다음과 같은 문법으로 새로운 연산자를 정의할 수 있었다.

infix operator <> { precedence 180 associativity left }

하지만 이 문법은 왠지 좀 엉성해보이는 구석이 있었다.

  • {...} 블럭내에서는 속성명과 속성값의 구분이 단순히 공백이다.
  • 속성명-속성값의 짝이 한 라인에 연결되어 선언될 수 있다.

더 보기 »(Swift) Swift3의 커스텀 연산자 정의 변경점

swift 커스텀 연산자

커스텀 연산자 >->를 만들어 보자. 함수 외부에서 파라미터를 함수로 주입하는 연산자로 이는 swift에서 기본적으로 정의하지 않고 있는 연산자이다. 따라서 연산자를 먼저 선언해준다. infix operater >-> {} 내용을 구현해준다. 내용은 제네릭 함수로… func >-> <T, U>(left:T, right:(T)->U) -> U { return right(left) } 이제 테스트해보자… func someIncrement(a:Int) -> Int { return a + 3 } 4 >-> someIncrement // 7