На этом шаге продолжим рассматривать основы языка Go и познакомимся с логическими выражениями.
В языке Go имеются два встроенных логических значения, true и false, оба относятся к типу bool. Кроме того, в Go поддерживаются стандартные логические операторы и операторы сравнения, возвращающие результат типа bool (табл.1).
Оператор | Описание/результат |
---|---|
!b | Оператор логического отрицания. Вернет false, если b имеет значение true |
a || b | Оператор "логическое ИЛИ" с сокращенным порядком вычисления. Вернет true, если одно из подвыражений, a или b, вернет true |
a && b | Оператор "логическое И" с сокращенным порядком вычисления. Вернет true, если оба подвыражения, a и b, вернут true |
a < b | Вернет true, если значение выражения a меньше значения выражения b |
a <= b | Вернет true, если значение выражения a меньше или равно значению выражения b |
a == b | Вернет true, если значение выражения a равно значению выражения |
a != b | Вернет true, если значение выражения a не равно значению выражения b |
a >= b | Вернет true, если значение выражения a больше или равно значению выражения b |
a > b | Вернет true, если значение выражения a больше значения выражения b |
Операторы сравнения в языке Go накладывают определенные ограничения на сравниваемые значения. Два значения должны иметь один и тот же тип или, если они являются интерфейсами, должны содержать реализацию одного и того же интерфейса. Если одно из значений является константой, его тип должен быть совместим с типом другого значения. То есть нетипизированные числовые константы можно сравнивать с числовыми значениями любого типа, но числовые значения разных типов, ни одно из которых не является константой, сравнивать нельзя, если явно не преобразовать тип одного операнда в тип другого.
Операторы == и != могут применяться к операндам любых совместимых типов, включая массивы и структуры, элементы которых могут сравниваться между собой с помощью == и !=. Эти операторы не могут использоваться для сравнения срезов. Операторы сравнения (<, <=, >=, >) могут применяться только к числам и строкам.
На следующем шаге начнем рассматривать числовые типы данных в Go.