[swift-users] Guarding against an empty sequence
Adriano Ferreira
adriano.ferreira at me.com
Sun May 8 21:16:13 CDT 2016
Hi everyone!
I’m working on the following method:
extension SequenceType {
/// Check if `predicate` is true for all elements of `self`
///
/// - Parameter predicate: The predicate called on each element of `self`
///
/// - Returns: True iff every element in `self` satisfies `predicate`, false otherwise
@warn_unused_result
func all(@noescape where predicate: Generator.Element throws -> Bool) rethrows -> Bool {
for element in self where try !predicate(element) {
return false
}
return true
}
}
However, when the sequence is empty the method returns true, which is not the desired behaviour.
let a = [Int]()
let b = a.all(where: { $0 > 7 })
XCTAssertFalse(b) // This fails, cause there’s no guard against an empty sequence
Does anyone know how to guard against an empty sequence?
I’m using Xcode 7.3.1 and Swift 2.2.
Best,
— A
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-users/attachments/20160508/2fb6790d/attachment.html>
More information about the swift-users
mailing list