&&(_:_:)
Performs a logical AND operation on two Boolean values.
Declaration
static func && (lhs: Bool, rhs: @autoclosure () throws -> Bool) rethrows -> BoolParameters
- lhs:
The left-hand side of the operation.
- rhs:
The right-hand side of the operation.
Discussion
The logical AND operator (&&) combines two Boolean values and returns true if both of the values are true. If either of the values is false, the operator returns false.
This operator uses short-circuit evaluation: The left-hand side (lhs) is evaluated first, and the right-hand side (rhs) is evaluated only if lhs evaluates to true. For example:
let measurements = [7.44, 6.51, 4.74, 5.88, 6.27, 6.12, 7.76]
let sum = measurements.reduce(0, +)
if measurements.count > 0 && sum / Double(measurements.count) < 6.5 {
print("Average measurement is less than 6.5")
}
// Prints "Average measurement is less than 6.5"In this example, lhs tests whether measurements.count is greater than zero. Evaluation of the && operator is one of the following:
When
measurements.countis equal to zero,lhsevaluates tofalseandrhsis not evaluated, preventing a divide-by-zero error in the expressionsum / Double(measurements.count). The result of the operation isfalse.When
measurements.countis greater than zero,lhsevaluates totrueandrhsis evaluated. The result of evaluatingrhsis the result of the&&operation.