当前位置: 首页 > 面试题库 >

拆分现在抱怨缺少“ isSeparator”

司徒宏远
2023-03-14
问题内容

在Swift 1.2的最新升级之后,我不知道如何将一行文本拆分为单词。我曾经这样做:

let bits = split(value!, { $0 == " "}, maxSplit: Int.max, allowEmptySlices: false)

但这不再起作用,因为…

Cannot invoke 'split' with an argument list of type '(String, (_) -> _, maxSplit: Int, allowEmptySlices: Bool)'

嗯,好吧,即使我可以上次建造?好吧,让我们尝试…

let bits = split(value!, { $0 == " "})

好吧,我能想到的所有其他版本都说:

Missing argument for parameter 'isSeparator' in call

让我们来听听它对新编程语言进行Beta测试!好极了!

有人知道1.2的正确秘密调味料吗?


问题答案:

在Swift 1.2中,似乎参数的顺序已更改:

let bits = split(value!, maxSplit: Int.max, allowEmptySlices: false,
                 isSeparator: { $0 == " "})

或者,使用默认值:

let bits = split(value!, isSeparator: { $0 == " "})

谓词现在是最后一个参数,并且需要一个外部参数名称,isSeparator因为它前面带有可选参数。

更改的优点是您可以使用 结尾的闭包语法

let bits = split(value!, maxSplit: Int.max, allowEmptySlices: false) { $0 == " " }

要么

let bits = split(value!) { $0 == " " }


 类似资料:
  • 问题内容: 我正在尝试连接到远程主机,并检查文件是否存在。在此阶段,我仅尝试连接,但是出现错误: 我试图找出其他人是否有像我一样的问题,但我却找不到。 我知道我需要在此过程中以某种方式检查knowns_hosts,但我只是想不通如何… 问题答案: 您在这里寻找的是: 然后将您的hostKey定义行替换为 有关此主题的更多信息: 我从中获取部分代码的官方样本 为什么现在需要hostKey 编辑:还请

  • 当我执行以下代码时(一个更大的例子,归结为要点) 我得到这个错误: Err: MongoError:错误处理查询: ns=locationdemo.locationsTree: GEONEAR field=loc maxdist=600000 is近球体=0排序:{}Proj:{}planner返回错误:无法找到$Geo近查询的索引

  • 我使用Gradle 6.3和Jacoco来编译、测试和显示覆盖率报告。但是我不明白为什么它抱怨“两个分支中的一个丢失了”,根本没有分支: 下面是完整的静态编程语言数据类: 如果幕后有树枝,它们是什么?我该如何覆盖它们?

  • 我很少使用HTML和JavaScript,几乎忘记了最基本的内容。错误是什么? DevTools未能加载SourceMap:无法加载的内容https://cdn.jsdelivr.net/npm/@tensorflow/tf。min.js。映射:HTTP错误:状态代码404,网络::错误\u HTTP\u响应\u代码\u失败

  • 问题内容: 在以下方法中,即使通过该方法只有一条路径,并且编译器包含一条语句,编译器也会抱怨 缺少return语句。抑制该错误需要另一条语句。 鉴于Java编译器可以识别无限循环,为什么它也不能处理这种情况?链接的问题提示,但不提供此特定情况的详细信息。 问题答案: JLS14.21,“无法到达的语句”是处理此问题的部分: if语句(是否具有else部分)以异常方式处理。因此,本节末尾将单独讨论。

  • 我一直在寻找一种从清单中禁用Android TV支持的方法。我知道我们的应用程序是不兼容的,我也读到过,即使你的目标是支持Android TV,应用程序也不会得到支持。 但是,我还没有找到阻止清单请求INTENTBACK_LAUNCHER的方法。我不想定义一个,因为我知道我们的app和电视不兼容。 这些是我现在得到的警告: 预期使用功能android:name=“android.software.