3
Iコードで、例えば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})
、印刷されますコンソールに接続します。クローズの引数ではなく、コンパイラのバグではなく、より具体的なオーバーロードが選択される理由を誰でも説明できますか?
スウィフト2が期待される挙動を示した。
Swift 2とSwift 3が異なる答えを出すのは間違いないでしょう。これがいくつかの重要な点であなたに影響する場合は、確かにhttps://bugs.swift.orgでバグを報告してください。少なくとも1日以内に良い答えを得るでしょう。 – matt
ええ、「私は個人的にはこれが変わるとは期待していませんでした。 –