Тип Bool представляет логическое значение true (истина) или false (ложь). То есть объект Bool может находиться в двух состояниях:
var isEnabled: Bool = true isEnabled = false
Объекты типа Bool нередко являются результатом условных выражений, то есть таких выражений, которые представляют некоторое условие, и в зависимости от истинности условия возвращают true или false: true - если условие истинно и false - если условие ложно.
Операции сравнения сравнивают два значения и в зависимости от результата сравнения возвращают объект типа Bool: true или false.
==
Операция равенства. Сравнивает два значения, и если они равны, возвращает true
:
var a = 10 var b = 10 var c = a == b print(c) // true, так как a равно b var d = 8 c = a==d print(c) // false, так как a не равно d
!=
Операция неравенства. Сравнивает два значения, и если они неравны, возвращает true
:
var a = 10 var b = 10 var c = a != b print(c) // false, так как a равно b var d = 8 c = a!=d print(c) // true, так как a не равно d
>
Сравнивает два значения и возвращает true
, если первое значение больше второго:
var a = 15 var b = 10 var c = a > b print(c) // true, так как a больше чем b var d = 8 c = d > a print(c) // false, так как d меньше чем a
<
Сравнивает два значения и возвращает true
, если первое значение меньше второго:
var a = 15 var b = 10 var c = a < b print(c) // false, так как a больше чем b var d = 8 c = d < a print(c) // true, так как d меньше чем a
>=
Сравнивает два значения и возвращает true
, если первое значение больше или равно второму:
var a = 10 var b = 10 var c = a >= b print(c) // true, так как a равно b var d = 8 c = d >= a print(c) // false, так как d меньше чем a
<=
Сравнивает два значения и возвращает true
, если первое значение меньше или равно второму:
var a = 15 var b = 10 var c = a <= b print(c) // false, так как a больше чем b var d = 9 c = d <= a print(c) // true, так как d меньше a
Логические операции выполняются над объектами типа Bool и в качестве результата также возвращают объект Bool.
!
Логическое "НЕ" или операция отрицания. Она инвертирует значение объекта: если он был равен true
, то операция возвращает false
, и наоборот:
var isEnabled: Bool = true var result = !isEnabled // false
&&
Логическое "И" или операция логического умножения. Она возвращает true
, если оба операнда операции имеют значение true
:
let isEnabled: Bool = true let isAlive = true let result = isEnabled && isAlive // true - так как оба операнда равны true let a: Bool = true let b: Bool = false let c: Bool = true let d = a && b && c // false, так как b = false
||
Логическое "ИЛИ" или операция логического сложения. Она возвращает true
, если хотя бы один из операндов операции равен true
:
var isEnabled: Bool = true var isAlive = false isEnabled || isAlive // true, так как isEnabled равен true var a: Bool = true var b: Bool = false var c: Bool = false a || b || c // true, так как a = true
Нередко логические операции объединяют несколько операций сравнения:
let a = 10 let b = 12 let c = a > 8 && b < 10 let d = a > 8 || b < 10 print(c) // false print(d) // true