Checking for true

x == true упрощается до x (как в Python или Bash).

Shortcircuits

В контексте сокращенных (shortcircuit) вычислений если ответ определяется значением левого операнда, правый не вычисляется. Это делает безопасными такие выражения:

s != "" && s[0] == 'x'

Иначе проверка s[0] приводила бы к сбою программы при применении к пустой строке.

Order of operations

&& — булево умножение, а || — булево сложение, что делает первый оператор приоритетнее. В итоге, например, для таких выражений скобки не нужны:

if 'a' <= c && c <= 'z' ||
	'A' <= c && c <= 'Z' ||
	'0' <= c && c <= '9' {
	// foo
}

Bool and int conversion

Для преобразования bool int нужно юзать явную конструкцию if:

i := 0
if b {
	i = 1
}

А для частых преобразований можно написать функцию:

func btoi(b bool) int {
	if b {
		return 1
	}
	return 0
}

Обратная операция не нуждается в отдельной функции из-за своей простоты, но пусть будет для симметрии:

func itob(i int) bool { return i != 0 }

Соус: Книга Язык программирования Go Глава 3. Фундаментальные типы данных 3.4. Булевы значения