2017-06-16 6 views
0

Appleドキュメントの正確なサンプルコードをヘッダに使用していますが、このエラーが発生します:汎用パラメータ 'S'を推測できませんでしたこれはSwift 4 BETA WWDCリリース。パラメータの型を推論できないSwift 4(BETA)マージディクショナリ

var dictionary = ["a": 1, "b": 2] 

dictionary.merge(["a": 3, "c": 4]) 
     { (current, _) in current } 
// ["b": 2, "a": 1, "c": 4] 

// Taking the new value for key "a": 
dictionary.merge(["a": 5, "d": 6]) 
     { (_, new) in new } 
// ["b": 2, "a": 5, "c": 4, "d": 6] 

変数に辞書を割り当てて、タイプをハードコーディングしてみましたが、同じエラーが表示されました。誰かがこれを動作させることができますか?

答えて

1

非常に反応の良いSwift開発者のおかげで、私はバグを追跡した直後に回避策を得ました。 https://bugs.swift.org/browse/SR-4969

var dictionary = ["a": 1, "b": 2] 

dictionary.merge(["a": 3, "c": 4].lazy.map { ($0.key, $0.value) }) { (current, _) in current } 
// ["b": 2, "a": 1, "c": 4] 

// Taking the new value for key "a": 
dictionary.merge(["a": 5, "d": 6].lazy.map { ($0.key, $0.value) }) { (_, new) in new } 
// ["b": 2, "a": 5, "c": 4, "d": 6] 
+1

「怠け者」のない私にはうってつけですが、なぜそれを含める方がいいですか? – proxpero

+0

あなたはこの記事をチェックするかもしれませんが、アクセスされていないものにメモリを割り当てることを避けていると思います。この場合、Nノードにアクセスするようです。 https://cocoacasts.com/what-is-a-lazymapcollection-in-swift/ – possen

+0

ああ、ところで、このバグはSwiftのGitHubリポジトリで修正されています。 – possen

関連する問題