Operator 演算子

&&(_:_:)

Performs a logical AND operation on two Boolean values. 論理AND(積)演算を2つのブール値で実行します。

Declaration 宣言

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

Parameters パラメータ

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. 論理AND演算子(&&)は2つのブール値を組み合わせて、trueを両方の値がtrueならば返します。値のどちらかがfalseならば、演算子は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: この演算子は、短絡評価を使います:左手側(lhs)が最初に評価されます、そして右手側(rhs)はlhstrueに評価する場合にのみ評価されます。例えば:


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: この例において、lhsmeasurements.countがゼロより大きいかどうかテストします。&&演算子の評価は、次のうちの1つです:

  • 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. measurements.countがゼロに等しい時、lhsfalseに評価して、rhsは評価されず、式sum / Double(measurements.count)でのゼロによる除算を防ぎます。この演算の結果は、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. measurements.countがゼロより大きい時、lhstrueに評価して、rhsは評価されます。rhsを評価することの結果は、&&演算の結果です。

See Also 参照

Transforming a Boolean ブールを変換する