swift No exact matches in call to instance method ‘merge‘

阅读: 评论:0

swift No exact matches in call to instance method ‘merge‘

swift No exact matches in call to instance method ‘merge‘

  • swift 字典 merge
  • swift 合并两个字典

问题

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小时内删除。

标签:matches   exact   swift   call   merge
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23