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

2024-01-01 10:10

本文主要是介绍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] = [:]
dictionary1.merge(dictionary2, uniquingKeysWith: {$1})

在这里插入图片描述

解决

var dictionary1 = ["a" : "1", "b" : "2"]
var dictionary2: [String: String] = [:]
dictionary1.merge(dictionary2, uniquingKeysWith: {$1})

分析

出现这个问题的原因时,dictionary1 的 value 都是 String 类型的,所以它只能 merge 相同类型的 value 值,但是 dictionary2 开始的时候声明 value 是 Any,不是一个明确的String 类型,所以不能 merge。

如果 dictionary1 声明的时候是[String: Any], dictionary2 也是[String: Any],这样就可以使用 merge 方法。

对 merge 这个方法的理解存在一些偏差,当且仅当被 merge 的字典和该字典的 value 类型一致的时候才能使用 merge 方法。

这篇关于swift No exact matches in call to instance method ‘merge‘的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/558934

相关文章

BD错误集锦7——在集成Spring MVC + MyBtis时使用c3p0作为数据库时报错Method com/mchange/v2/c3p0/impl/NewProxyPreparedStatem

异常信息如下: Type Exception ReportMessage Handler dispatch failed; nested exception is java.lang.AbstractMethodError: Method com/mchange/v2/c3p0/impl/NewProxyPreparedStatement.isClosed()Z is abstractDescr

git fetch.git merge,git pull

git fetch origin branch1:branch2 首先执行上面的fetch操作 使用远程branch1分支在本地创建branch2(但不会切换到该分支),  如果本地不存在branch2分支, 则会自动创建一个新的branch2分支,  如果本地存在branch2分支, 并且是`fast forward', 则自动合并两个分支, 否则, 会阻止以上操作. Git pus

「Debug R」报错unable to find an inherited method for function是如何产生的

在一个群里看到这样一条报错,截图如下: 报错信息 当然这种问题解决起来也很快,无非就是把报错信息复制出来放在搜索引擎上,只不过你要挑选合适的搜索引擎。 百度 谷歌 必应 解决方案就是用dplyr::select。 虽然报错解决了,但是我还想着要重复出这个报错。因为只有能重复出报错,才能证明你不是运气好才解

IOS Swift 从入门到精通:数组,集合,元组,对比,字典,枚举

目录 数组 集合 元组 Arrays vs sets vs tuples 字典  字典默认值 创建空集合 枚举 枚举关联值 枚举原始值 复杂类型:总结 数组 数组是存储为单个值的值的集合。例如,John、Paul、George 和 Ringo 是姓名,但数组可让您将它们分组为单个值,即 The Beatles。 在代码中我们这样写: let john

abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized

1,abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized 都不可以,因为abstract申明的方法是要求子类去实现的,abstract只是告诉你有这样一个接口,你要去实现,至于你的具体实现可以是native和synchronized,也可以不是,抽象方法是不关心这些事的,所以写这两个是没有意义的。然后,static方法是不会被覆

git中merge,rebase,cherry-pick,patch的联系与区别

这些操作都是为了把一个分支上的工作加到另一个分支上。 merge 把另一个分支合并到当前分支上。 rebase 把当前分支的提交在另一分支上重演。(如果可以成功重演,本分支将会消失) cherry-pick 把本分支或者其他分支的某一次或某几次提交,在当前分支上重演。 patch 把一次或几次提交,做成补丁文件(可以远程发送给其他人,这是与cherry-pick最大的不同)。这个补丁文件

IOS Swift 从入门到精通: 函数,参数和异常

文章目录 编写函数接受参数返回值参数标签省略参数标签默认参数可变参数函数编写抛出函数运行异常函数输入输出参数总结 编写函数 函数让我们可以重复使用代码,这意味着我们可以编写一个函数来做一些有趣的事情,然后从很多地方运行该函数。重复代码通常是一个坏主意,而函数可以帮助我们避免这样做。 首先,我们要编写一个函数来为应用用户打印帮助信息。我们可能在应用中的任何地方都需要它,因此将其作

IOS Swift 从入门到精通:闭包第二部分,高级闭包

文章目录 当闭包接受参数时使用闭包作为参数当闭包返回值时使用闭包作为参数简写参数名称高级闭包: 具有多个参数的闭包高级闭包:从函数返回闭包高级闭包:捕获值总结 当闭包接受参数时使用闭包作为参数 这是闭包开始变得有点像线路噪声的地方:传递给函数的闭包也可以接受它自己的参数。 我们一直使用() -> Void它来表示“不接受任何参数并且不返回任何内容”,但是您可以继续填充()闭包应

【Rust 日报】2020-03-11 :2020 RustConf CFP (Call For Proposals) 正式启动

【博客】我对 Rust 和 .NET 的探索 作者从事于用 Rust 促进 .NET 开发的工作,现在他们的项目有点快成形的意思了但还有很多问题,所以他决定和社区的人介绍一下他们的工作并交流一下. 项目现在还没取好名字,也暂不开源,主要两部分组成: 将 rustc 中的 LLVM bitcode 转化为 .NET 程序集(assembly)的编译器为其他 .NET 程序集聚合 Rust bind

IOS Swift : 从入门到精通结构、属性和方法 结构体,第一部分

文章目录 创建自己的结构计算属性属性观察者方法变异方法字符串的属性和方法数组的属性和方法 创建自己的结构 Swift 允许你以两种方式设计自己的类型,其中最常见的是结构,或简称为structs。结构可以拥有自己的变量和常量,以及自己的函数,然后可以按照你想要的方式创建和使用。 让我们从一个简单的例子开始:我们将创建一个将Sport其名称存储为字符串的结构。结构中的变量称为属性,