Go · Essencial · Português · Técnico
interface vazia
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{}