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)
有没有办法使用键路径表达式来简化 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)