Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗goPmCdSN 112 of 350 menu
◀ ▶

Конструкция без выражения в Go

Без выражения каждая ветка сама пишет свою проверку. После switch сразу идет блок с case, а в каждой ветке вместо значения стоит полное условие, как в обычной проверке: без круглых скобок.

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

Разделим число по знаку:

n := -4 switch { case n < 0: fmt.Println("neg") case n == 0: fmt.Println("zero") default: fmt.Println("pos") }

Тот же прием для строки:

role := "admin" switch { case role == "admin": fmt.Println("boss") case role == "guest": fmt.Println("visit") default: fmt.Println("user") }

Дано число:

x := 0

Выведите "below", "zero" или "above" без выражения после ключевого слова.

Дана переменная:

ready := true

Выберите ветку по ready и выведите "go" или "wait".

Дана переменная:

ch := 'm'

Сравните ch с 'a' и 'm' в отдельных ветках без выражения и выведите разный текст.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить