0 added
0 removed
Original
2026-01-01
Modified
2026-03-10
1
<p>Теги: go, оператор if, управляющие структуры</p>
1
<p>Теги: go, оператор if, управляющие структуры</p>
2
<p>В языке программирования<strong>Go</strong>управляющие структуры схожи со структурам в<strong>C</strong>, однако они имеют свои важные особенности. Например:</p>
2
<p>В языке программирования<strong>Go</strong>управляющие структуры схожи со структурам в<strong>C</strong>, однако они имеют свои важные особенности. Например:</p>
3
<ul><li>отсутствует цикл<strong>do</strong>либо<strong>while</strong>, зато существует слегка обобщенный<strong>for</strong>;</li>
3
<ul><li>отсутствует цикл<strong>do</strong>либо<strong>while</strong>, зато существует слегка обобщенный<strong>for</strong>;</li>
4
<li><strong>switch</strong>является более гибким;</li>
4
<li><strong>switch</strong>является более гибким;</li>
5
<li><strong>switch</strong>и<strong>if</strong>принимают необязательный оператор инициализации по аналогии с<strong>for</strong>;</li>
5
<li><strong>switch</strong>и<strong>if</strong>принимают необязательный оператор инициализации по аналогии с<strong>for</strong>;</li>
6
<li>операторы<strong>break</strong>и<strong>continue</strong>способны принимать дополнительную метку, нужную для определения<strong>break</strong>либо<strong>continue</strong>.</li>
6
<li>операторы<strong>break</strong>и<strong>continue</strong>способны принимать дополнительную метку, нужную для определения<strong>break</strong>либо<strong>continue</strong>.</li>
7
</ul><p>Также существуют новые управляющие структуры, тот же<strong>type switch</strong>(переключатель типа) или<strong>select</strong>-- мультиплексор многоканальной связи. Немного отличается и синтаксис: отсутствуют круглые скобки, тела всегда должны разделятся фигурными скобками.</p>
7
</ul><p>Также существуют новые управляющие структуры, тот же<strong>type switch</strong>(переключатель типа) или<strong>select</strong>-- мультиплексор многоканальной связи. Немного отличается и синтаксис: отсутствуют круглые скобки, тела всегда должны разделятся фигурными скобками.</p>
8
<p>Давайте подробнее остановимся на операторе if.</p>
8
<p>Давайте подробнее остановимся на операторе if.</p>
9
<h2>Оператор if</h2>
9
<h2>Оператор if</h2>
10
<p>Простой<strong>if</strong>в Golang выглядит следующим образом:</p>
10
<p>Простой<strong>if</strong>в Golang выглядит следующим образом:</p>
11
<p>Наличие обязательных фигурных скобок поощряет написание простых<strong>if</strong>на нескольких строках. В принципе, это хорошая практика, особенно если тело включает в себя контролирующий оператор, тот же<strong>break</strong>или<strong>return</strong>.</p>
11
<p>Наличие обязательных фигурных скобок поощряет написание простых<strong>if</strong>на нескольких строках. В принципе, это хорошая практика, особенно если тело включает в себя контролирующий оператор, тот же<strong>break</strong>или<strong>return</strong>.</p>
12
<p>Так как<strong>if</strong>и<strong>switch</strong>принимают выражение инициализации, нередко можно встретить задание в таком выражении локальной переменной.</p>
12
<p>Так как<strong>if</strong>и<strong>switch</strong>принимают выражение инициализации, нередко можно встретить задание в таком выражении локальной переменной.</p>
13
<p>В Go-библиотеках можно найти случаи, когда<strong>if</strong>не передает поток исполнения программы последующему оператору, в результате чего тело заканчивается на<strong>break</strong>,<strong>goto</strong>,<strong>continue</strong>либо<strong>return</strong>, то есть ненужный<strong>else</strong>опускается.</p>
13
<p>В Go-библиотеках можно найти случаи, когда<strong>if</strong>не передает поток исполнения программы последующему оператору, в результате чего тело заканчивается на<strong>break</strong>,<strong>goto</strong>,<strong>continue</strong>либо<strong>return</strong>, то есть ненужный<strong>else</strong>опускается.</p>
14
<p>Ниже -- пример распространенной ситуации, при которой код следует защищать от последовательности условий ошибки. То есть программный код читается хорошо, когда успешный поток управления направлен по странице вниз, причем ошибки устраняются в момент их возникновения. Но так как случаи ошибок, как правило, оканчиваются на операторах<strong>return</strong>, то и результирующий программный код в итоге не нуждается в операторах<strong>else</strong>.</p>
14
<p>Ниже -- пример распространенной ситуации, при которой код следует защищать от последовательности условий ошибки. То есть программный код читается хорошо, когда успешный поток управления направлен по странице вниз, причем ошибки устраняются в момент их возникновения. Но так как случаи ошибок, как правило, оканчиваются на операторах<strong>return</strong>, то и результирующий программный код в итоге не нуждается в операторах<strong>else</strong>.</p>
15
<p><em>По материалам https://golang-blog.blogspot.com/.</em></p>
15
<p><em>По материалам https://golang-blog.blogspot.com/.</em></p>
16
16