|
|||||||
Конструкция switch/case в Golang
Время создания: 10.11.2020 14:19
Автор: br0ke
Текстовые метки: go, golang, condition, conditional, construction, block, switch, case, fall, through, fallthrough
Раздел: Информационные технологии - Golang
Запись: and-semakin/mytetra_data/master/base/1604999960rkr42yqtv8/text.html на raw.githubusercontent.com
|
|||||||
|
|||||||
Во многих случаях удобнее записывать условные выражения при помощи конструкции switch/case. Сравнение переменной с разными значениями: switch i { case 0: fmt.Println("Zero") case 1: fmt.Println("One") case 2: fmt.Println("Two") case 3: fmt.Println("Three") case 4: fmt.Println("Four") case 5: fmt.Println("Five") default: fmt.Println("Unknown Number") } Обход возможных значений осуществляется сверху вних, и выбирается первое значение, которое сошлось с выражением. Если не подошло ни одно из значений, то будет выполнен блок default (при его наличии). Отличия от С-подобных языков: в Go каждый блок case по умолчанию отделён от других, и поэтому нет нужды каждый такой блок заканчивать ключевым словом break. Если же нужно продолжить выполнение следующего блока, то в текущем case нужно явно написать fallthrough -- таком случае следующий блок выполнится независимо от того, истинно ли его условие или нет. Также при помощи case можно не только сравнивать значение конкретной переменной, но и организовывать проверку произвольных выражений: var c uint32 fmt.Scan(&c) switch { case 1 <= c && c <= 9: fmt.Println("от 1 до 9") case 100 <= c && c <= 250: fmt.Println("от 100 до 250") case 1000 <= c && c <= 6000: fmt.Println("от 1000 до 6000") } Так же как и в if, в switch/case можно написать выражение, которое будет выполнено прямо перед проверкой условий. Его нужно отделить от основного выражения через ; (точку с запятой). |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|