私はSwift 3(Xcode 8.2.1)のジェネリックスで遊んでいますが、なぜこれがコンパイルされないのかわかりません。私もself.updateValue
を試しました...それも失敗します。ジェネリックディクショナリエラー - サブスクリプトへのあいまいな参照
extension Dictionary {
mutating func mergeWith<K: Hashable, V: AnyObject> (a: [K:V]) -> [K:V] {
for (k,v) in a {
self[k] = v // compile error: Ambiguous reference to member 'subscript'
}
}
}
私はジェネリックスKとVの種類をディクショナリで動作するように制限しようとしていますが、それはうまくいかないでしょうか?
ありがとうございました。私は確かに、エラーメッセージが何らかのスタックの最後の部分ではなく、エラーが発生していた理由を示していることを望みます。 – xaphod
@xaphodええ、残念ながら、コンパイラからの診断メッセージがまだ遠い満足できるものから。スウィフトチームでは公正だが、状況は一般的に良くなっている。怠惰なエラー/警告メッセージが出たときには、[バグレポートを提出する](https://bugs.swift.org)の価値があります - 一般的に通知されます。 – Hamish