Swift: .contains(where:) 使用键路径表达式

Swift: .contains(where:) using key-path expression

有没有办法使用键路径表达式来简化 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 { [=11=].bool }
print(hasTruth) // true

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

是的,您只需将密钥路径传递给 contains(where:) 而无需关闭,就像您对 filter 所做的那样。

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