我发现.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 }
我一直在搞乱一些大型数组,所以我用那个笨重的函数解决了我的问题.
发生了什么?
你如何使用the new way?
那里的例子很好,我确信他们打算这样做.
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
解决方法
怎么用这个
let numbers = [1,2,3,4] let contains = numbers.contains(where: { $0 == 3 }) //contains == true
要么
let strings = ["A","B","C","D"] let contains = strings.contains(where: { $0 == "B" }) //contains == true
即使是像NSColor这样的其他物体
let colors: [NSColor] = [.red,.blue,.green] contains = colors.contains(where: { $0 == .red }) //contains == true
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。