Управляющие структуры и оператор if в Go
В языке программирования Go управляющие структуры схожи со структурам в C, однако они имеют свои важные особенности. Например:
- отсутствует цикл do либо while, зато существует слегка обобщенный for;
- switch является более гибким;
- switch и if принимают необязательный оператор инициализации по аналогии с for;
- операторы break и continue способны принимать дополнительную метку, нужную для определения break либо continue.
Также существуют новые управляющие структуры, тот же type switch (переключатель типа) или select -- мультиплексор многоканальной связи. Немного отличается и синтаксис: отсутствуют круглые скобки, тела всегда должны разделятся фигурными скобками.
Давайте подробнее остановимся на операторе if.
Оператор if
Простой if в Golang выглядит следующим образом:
Наличие обязательных фигурных скобок поощряет написание простых if на нескольких строках. В принципе, это хорошая практика, особенно если тело включает в себя контролирующий оператор, тот же break или return.
Так как if и switch принимают выражение инициализации, нередко можно встретить задание в таком выражении локальной переменной.
В Go-библиотеках можно найти случаи, когда if не передает поток исполнения программы последующему оператору, в результате чего тело заканчивается на break, goto, continue либо return, то есть ненужный else опускается.
Ниже -- пример распространенной ситуации, при которой код следует защищать от последовательности условий ошибки. То есть программный код читается хорошо, когда успешный поток управления направлен по странице вниз, причем ошибки устраняются в момент их возникновения. Но так как случаи ошибок, как правило, оканчиваются на операторах return, то и результирующий программный код в итоге не нуждается в операторах else.
По материалам https://golang-blog.blogspot.com/.