Is there someway to use a key-path expression to simplify boilerplate code in a Swift contains(where:
)?
E.g.
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
Is the above example possible to express in Swift, using \.bool
on the struct Struct
, without resorting to structs.filter(\.bool).count > 0
?
Yes, you simply need to pass the key-path to contains(where:)
without a closure, same as you do with filter
.
let hasTruth = structs.contains(where: \.bool)