Swift:.contains(where:) 使用键路径表达式 [重复]

Posted

技术标签:

【中文标题】Swift:.contains(where:) 使用键路径表达式 [重复]【英文标题】:Swift: .contains(where:) using key-path expression [duplicate] 【发布时间】:2021-12-11 02:31:41 【问题描述】:

有没有办法使用键路径表达式来简化 Swift contains(where:) 中的样板代码?

例如

struct Struct 
  let bool: Bool

let structs = [
  Struct(bool: false), 
  Struct(bool: false),
  Struct(bool: true), 
  Struct(bool: false),
  Struct(bool: false)
]
let hasTruth = structs.contains  $0.bool 
print(hasTruth) // true

上面的例子是否可以用 Swift 表达,在 struct Struct 上使用 \.bool,而不使用 structs.filter(\.bool).count > 0

【问题讨论】:

structs.contains(where: \.bool) ??? 【参考方案1】:

是的,您只需将密钥路径传递给 contains(where:) 而无需闭包,就像使用 filter 一样。

let hasTruth = structs.contains(where: \.bool)

【讨论】:

以上是关于Swift:.contains(where:) 使用键路径表达式 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

在 Where LINQ 查询中使用 Contains()

Swift 2.2 - 'String' 类型的值没有成员'contains' [重复]

尝试使用 where array-contains 查询 firebase,如何等待接收数据?

Contains in Swift

PostgreSQL select * where column contains array value

具有 LINQ 的实体框架在 WHERE 子句中使用 CONTAINS 非常慢且具有大整数列表