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

Переключатель типов без провала в Go

В переключателе типов провала в следующую ветку нет. Заголовок с утверждением .(type) и ветки по типам устроены иначе, чем выбор по значению, и язык запрещает туда вставлять команду провала.

Компилятор не принимает провал в таком блоке. Каждая ветка по типу выполняется отдельно, как вы уже видели на примерах с интерфейсом, без соседнего перехода. Тот же запрет действует и для короткой формы без имени переменной в заголовке.

Попытка дописать команду после печати в ветке int не проходит сборку:

var x any = 10 switch v := x.(type) { case int: fmt.Println("int", v) fallthrough case string: fmt.Println("str", v) }

Дан следующий код:

var x any = "hi" switch x.(type) { case string: fmt.Println("s") fallthrough case int: fmt.Println("i") }

Скажите, соберется ли программа.

Скажите, можно ли в переключателе типов выполнить две ветки case подряд для одного значения той же командой, что работает при выборе по числу.

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

var x any = true

Напишите переключатель типов, который печатает "bool" или "other" без перехода в соседнюю ветку.

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