튜플에 대해 단항 연산자를 정의 할 수없는 것처럼 보입니다. 이 예제를 고려하십시오튜플에 대해 단항 연산자를 정의 할 수 없음
@prefix func - (tuple: (Int, Int)) -> (Int, Int) {
return (-tuple.0, -tuple.1)
}
let t = (1, 2)
-t
그리고 오류가 발생합니다 : 는 대한 과부하를 찾을 수 없습니다 '-'지정된 인수를 받아 그. 이것은 예상되는 행동입니까?
이진 연산자가 정상적으로 작동한다는 점은 주목할 가치가 있습니다. 튜플에 대해 ==
을 정의 할 수 있으며 예상대로 작동합니다.
그래, 이미 몇 가지 신속한 버그 보고서를 제출했으며,이 보고서는 다른 보고서에 대한 좋은 후보자처럼 보입니다. 단지이를 분명히하고 싶었습니다. 개발자 포럼에서도 주제를 다뤘습니다.보고하기 전에 며칠 정도 기다려야합니다. – Nicky
컴파일러는 Ints의 튜플에 대해 단항 연산자를 정의하고 Int에 대해 이진 연산자를 정의하는 것의 차이점을 어떻게 알 수 있습니까? – newacct
글쎄, 왜 안되니? 구문이 다릅니다. 또한 typealias :'typealias IntPair = (Int, Int)'를 사용할 수도 있지만 여전히 예상대로 작동하지 않습니다. – Nicky