HTML Diff
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