ExpertiDict

Go · Intermediário · Inglês · Técnico

type switch

/taɪp swɪtʃ/substantivo

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.

Veja também

Todos os termos de Go