Swift 在合并两个字典的时候报如下错误:
No exact matches in call to instance method 'merge'
var dictionary1 = ["a" : "1", "b" : "2"]
var dictionary2: [String: Any] = [:]
(dictionary2, uniquingKeysWith: {$1})
var dictionary1 = ["a" : "1", "b" : "2"]
var dictionary2: [String: String] = [:]
(dictionary2, uniquingKeysWith: {$1})
出现这个问题的原因时,dictionary1 的 value 都是 String 类型的,所以它只能 merge 相同类型的 value 值,但是 dictionary2 开始的时候声明 value 是 Any,不是一个明确的String 类型,所以不能 merge。
如果 dictionary1 声明的时候是[String: Any], dictionary2 也是[String: Any],这样就可以使用 merge 方法。
对 merge 这个方法的理解存在一些偏差,当且仅当被 merge 的字典和该字典的 value 类型一致的时候才能使用 merge 方法。
本文发布于:2024-01-31 14:49:40,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170668378329297.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |