Шаг 17.
Язык программирования Go.
Иструкция if

    На этом шаге рассмотрим использование инструкции ветвления в Go.

    Инструкция if в языке Go имеет следующий синтаксис:

if необязательнаяИнструкция1; логическоеВыражение1 {
   блок1
} else if необязательнаяИнструкция2;логическоеВыражение2 {
   блок2
} else {
   блок3
}

    Инструкция может иметь нуль или более разделов else if и нуль или один завершающий раздел else. Каждый блок содержит нуль или более инструкций.

    Фигурные скобки являются обязательными, а точки с запятой требуются, только когда присутствует необязательная инструкция.

    Необязательная инструкция должна быть простой инструкцией в терминологии Go: это может быть единственное выражение, инструкция передачи данных в канал (с использованием оператора ←), инструкция инкремента или декремента, инструкция присваивания или инструкция сокращенного объявления переменной. Если в необязательной инструкции объявляются переменные (например, с помощью оператора :=), их область видимости простирается от точки объявления до конца всей инструкции if, то есть они существуют в блоках if или else if, если те существуют, а также во всех нижележащих разделах и прекращают свое существование в конце инструкции if.

    Логическое выражение должно возвращать значение типа bool. В языке Go нелогические значения не преобразуются автоматически в логические, поэтому всегда следует использовать оператор сравнения, например if i == 0.

    Рассмотрим пример, который демонстрирует применение необязательной инструкции.

// Канонический вид 
if x := vvod(); x < 0 {
   fmt.Printf("(%d)\n", - x)
} else {
   fmt.Println(x)
}
// Подробный! 
{
      x := vvod()
      if x < 0 {
         fmt.Printf("(%d)\n", - x)
      }  else {
         fmt.Println(x)
      }
}

    Эти два фрагмента выведут одно и то же. Чтобы ограничить область видимости переменной x, во втором фрагменте пришлось использовать дополнительную пару фигурных скобок, тогда как в левом фрагменте эта область ограничивается инструкцией if автоматически.

    На следующем шаге рассмотрим инструкцию switch в Go.


Предыдущий шаг Содержание Следующий шаг