ExpertiDict

Go · Essencial · Português · Técnico

interface vazia

/ĩ.teʁ.ˈfej.si va.ˈzi.ɐ/substantivo

Interface sem métodos, escrita interface{} ou any, que qualquer valor satisfaz. Guarda valores de tipo qualquer, mas perde a checagem de tipos.

Onde usar

Aparece em fmt.Println(a ...any) e em JSON dinâmico (map[string]any). No review se pergunta se um tipo concreto ou um genérico não serviria melhor.

Em código

var x any = 42
x = "texto"
if s, ok := x.(string); ok {
  fmt.Println(s)
}
fmt.Printf("%T\n", x)

Exemplos

Evita interface vazia aqui, define um tipo de verdade.

O JSON decodificado em any chega como map[string]any.

Cuidado

Não é um tipo mágico: para usar o valor de volta é preciso type assertion ou type switch, e erros viram panic em tempo de execução.

Sinônimos

any, interface{}

Veja também

Todos os termos de Go