Operator: &&

operator && { associativity left precedence }


func &&(_: Bool, rhs: @autoclosure () throws -> Bool)

Performs a logical AND operation on two Boolean values.

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, combine: +)

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.count is equal to zero, lhs evaluates to false and rhs is not evaluated, preventing a divide-by-zero error in the expression sum / Double(measurements.count). The result of the operation is false.
  • When measurements.count is greater than zero, lhs evaluates to true and rhs is evaluated. The result of evaluating rhs is the result of the && operation.

Parameters: lhs: The left-hand side of the operation. rhs: The right-hand side of the operation.


func &&(lhs: Bool, rhs: @autoclosure () throws -> Bool) -> Bool