我发现.contains(Element)方法在我编写Swift代码的最小经验中非常重要,并且很快意识到Apple改变了它...
func contains(check:[[[Int]]], forElement: [[Int]]) -> Bool {
for element in check {
if areEqual(element, forElement) {
return true
}
}
return false
}
func areEqual(_ a:[[Int]], _ b:[[Int]]) -> Bool {
for i in 0..<a.count {
if a[i] != b[i] {
return false
}
}
return true
}
Run Code Online (Sandbox Code Playgroud)
我一直在搞乱一些大型数组,所以我用那个笨重的函数解决了我的问题.
发生了什么?
你如何使用新的方式?
那里的例子很好,我确信他们打算这样做.
enum HTTPResponse {
case ok
case error(Int)
}
let lastThreeResponses: [HTTPResponse] = [.ok, .ok, .error(404)]
let hadError = lastThreeResponses.contains { element in
if case .error = element {
return true
} else {
return false
}
}
// 'hadError' == true
Run Code Online (Sandbox Code Playgroud)
rui*_*ano 27
怎么用这个
let numbers = [1, 2, 3, 4]
let contains = numbers.contains(where: { $0 == 3 })
//contains == true
Run Code Online (Sandbox Code Playgroud)
要么
let strings = ["A", "B", "C", "D"]
let contains = strings.contains(where: { $0 == "B" })
//contains == true
Run Code Online (Sandbox Code Playgroud)
即使有其他对象 NSColor
let colors: [NSColor] = [.red, .blue, .green]
contains = colors.contains(where: { $0 == .red })
//contains == true
Run Code Online (Sandbox Code Playgroud)