Короткая команда в if в Go
Давайте теперь будем выполнять короткую команду перед проверкой и сразу смотреть ее результат. Между командой и условием ставят точку с запятой. Круглых скобок вокруг записи нет. Сначала выполняется левая часть, затем оценивается правая.
Имя из левой части видно только внутри всей конструкции с этой проверкой, включая обе ветки. Снаружи к нему обратиться нельзя.
Запишем число и сразу сравним его с нулем:
if n := 10; n > 0 {
fmt.Println("pos")
} else {
fmt.Println("non pos")
}
Тот же прием с другим значением меняет ветку:
if n := 0; n > 0 {
fmt.Println("pos")
} else {
fmt.Println("non pos")
}
Дано число:
3
Запишите его в k в той же строке,
что и проверка. Если k меньше
5, выведите "small",
иначе "big".
Дана строка:
"go"
Запишите ее в name в той же строке,
что и проверка. Если name совпадает
с "go", выведите "match",
иначе "other".
Дано логическое значение:
true
Запишите его в ok в той же строке,
что и проверка, и используйте ok
как условие. Выведите "yes"
или "no".