Условные выражения представляют логические операции и операции отношения. Они представляют некоторое условие и возвращают значение типа bool:
true
(если условие истинно) или false
(если условие ложно).
Операции отношения позволяют сравнить два значения. В языке Go есть следующие операции отношения:
==
Операция "равно". Возвращает true, если оба операнда равны, и false, если они не равны:
package main import "fmt" func main() { var a int = 8 var b int = 3 var c bool = a == b fmt.Println(c) // false }
>
Операция "больше чем". Возвращает true, если первый операнд больше второго, и false, если первый операнд меньше второго:
var a int = 8 var b int = 3 var c bool = a > b // true
<
Операция "меньше чем". Возвращает true, если первый операнд меньше второго, и false, если первый операнд больше второго:
var a int = 8 var b int = 3 var c bool = a < b // false
<=
Операция "меньше или равно". Возвращает true, если первый операнд меньше или равен второму, и false, если первый операнд больше второго:
var a int = 8 var b int = 3 var c bool = a <= b // false
>=
Операция "больше или равно". Возвращает true, если первый операнд больше или равен второму, и false, если первый операнд меньше второго:
var a int = 8 var b int = 3 var c bool = a >= b // true
!=
Операция "не равно". Возвращает true, если первый операнд не равен второму, и false, если оба операнда равны:
var a int = 8 var b int = 3 var c bool = a != b // true var d bool = a != 8 // false
Как правило, операции отношения применяются в условных конструкциях типа if...else, которые мы далее рассмотрим.
Логические операции сравнивают два условия. Как правило, они применяются к отношениям и объединяют несколько операций отношения. К логическим операциям относят следующие:
! (операция отрицания)
Инвертирует значение. Если операнд равен true, то возвращает false, иначе возвращает true.
var a bool = true var b bool = !a //false var c bool = !b // true
&& (конъюнкция, логическое умножение)
Возвращает true, если оба операнда не равны false. Возвращает false, если хотя бы один операнд равен false.
var b bool = 4 > 5 && 6 > 8 //false var c bool = 3 <= 5 && 10 > 8 // true
|| (дизъюнкция, логическое сложение)
Возвращает true, если хотя бы один операнд не равен false. Возвращает false, если оба операнда равны false.
var b bool = 4 > 5 || 6 > 8 //false var c bool = 3 == 5 || 10 > 8 // true