Go · Intermediário · Inglês · Técnico
type switch
Um switch que escolhe o ramo pelo tipo dinâmico de uma interface, usando a forma x.(type). Em cada case a variável já vem com o tipo certo.
Onde usar
Aparece em código que lida com valores dinâmicos, como erros ('case *MyErr') ou JSON decodificado em any. É a alternativa limpa a várias type assertions em sequência.
Em código
var v any = 3
switch t := v.(type) {
case int:
fmt.Println("int", t+1)
case string:
fmt.Println("str", len(t))
}Exemplos
Use a type switch instead of chained type assertions.
Use um type switch em vez de type assertions encadeadas.
The type switch handles ints and strings differently.
O type switch trata ints e strings de forma diferente.
Cuidado
Em um case com mais de um tipo, a variável continua com o tipo original da interface, não com um dos tipos listados.