Operator: ||

operator || { associativity left precedence }


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

Performs a logical OR operation on two Boolean values.

The logical OR operator (||) combines two Boolean values and returns true if at least one of the values is true. If both values are 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 false. For example:

let majorErrors: Set = ["No first name", "No last name", ...]
let error = ""

if error.isEmpty || !majorErrors.contains(error) {
    print("No major errors detected")
} else {
    print("Major error: \(error)")
// Prints "No major errors detected"

In this example, lhs tests whether error is an empty string. Evaluation of the || operator is one of the following:

  • When error is an empty string, lhs evaluates to true and rhs is not evaluated, skipping the call to majorErrors.contains(_:). The result of the operation is true.
  • When error is not an empty string, lhs evaluates to false 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