一尘不染

拆分现在抱怨缺少“ isSeparator”

swift

在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的正确秘密调味料吗?


阅读 253

收藏
2020-07-07

共1个答案

一尘不染

在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 == " " }
2020-07-07