3
내가 코드에서, 예를 들어 3는 스위프트 3 폐쇄는 오버로드 확인
스위프트의 폐쇄와 함수 오버로드 확인에 의해 혼동 해요 : 내가 Narrow
하지 Wide
기대
func f<T>(_ a: T) {
print("Wide")
}
func f(_ a: (Int)->(Int)) {
print("Narrow")
}
f({(a: Int) -> Int in return a + 1})
, 인쇄 할 콘솔에. 아무도 왜 특정 오버로드가 클로저가 아닌 인수에 대해 선택되지만 클로저에 대해서는 선택되지 않거나 컴파일러 버그 인 이유를 설명 할 수 있습니까?
예상되는 행동을 Swift 2가 나타 냈습니다.
어떤 행동이 "예상"되는지는 분명하지 않지만 Swift 2와 Swift 3가 다른 답변을 제시한다는 것은 확실합니다. 이것이 중요한면에서 당신에게 영향을 미친다면 확실하게 https://bugs.swift.org로 버그를 제출하십시오; 적어도 하루 안에 좋은 대답을 얻을 수 있습니다. – matt
예, "나는 개인적으로 이것이 변하기를 기대하지 않았습니다. –