gpt4 book ai didi

dictionary - 如何首先实现 Swift 3 字典(其中 :) closure

转载 作者:行者123 更新时间:2023-12-02 00:18:35 24 4
gpt4 key购买 nike

我在 Swift 3 中有一个 [String:String] 数组,我想根据 Key 是否包含 String 值来查找该数组中的特定项。

                let result = collection.first(where: ((key, value) -> Bool in
return key.contains("mystring")))

但是 Xcode 一直告诉我它是“表达式列表中的预期表达式”。我现在用谷歌搜索了一个小时,每个以包含或过滤方式使用此闭包的网站似乎都是正确的语法。

我在这里缺少什么?

最佳答案

你实际上并没有关闭,因为你使用了 ( )而不是{ }

此外,关闭 first(where:)类型为(Dictionary<Key, Value>.Iterator.Element) throws -> Bool 。该参数是一个元组,即 (Key, Value)迭代对。

试试这个:

let result = collection.first(where: { pair -> Bool in
return pair.key.contains("mystring")
})

但是您可以进行一些简化:

  1. Bool可以推断返回类型。
  2. return在单个表达式闭包中关键字不是必需的。
  3. pair参数名称是任意的并且毫无意义,所以最好只使用隐式闭包参数。
  4. 可以使用尾随闭包语法。

经过这些更改后,一切都简化为:

let result = collection.first{ $0.key.contains("mystring") }

关于dictionary - 如何首先实现 Swift 3 字典(其中 :) closure,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42707849/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com