我在标题中使用Apple文档中的确切示例代码,但是我收到此错误:无法推断通用参数“S”这是Swift 4 BETA WWDC版本中的内容。
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]
我尝试将字典分配给变量并对类型进行硬编码,但我仍然得到相同的错误。还有其他人能够让这个工作吗?
答案 0 :(得分:1)
感谢非常敏感的Swift开发人员,我在跟踪了这个bug后立即得到了一个解决方法。 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]