ExpertiDict

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

Stringer

/ˈstɹɪŋ.ɚ/interface

Interface do pacote fmt com o método String() string. Qualquer tipo que a implemente controla como seus valores são impressos por Println e pelo verbo %v.

Onde usar

Muito usada para dar nome legível a enums feitos com iota e a tipos de domínio em logs. Basta definir String no tipo para o fmt passar a usá-la.

Em código

type Cor int
const (
  Verde Cor = iota
  Azul
)
func (c Cor) String() string {
  return [...]string{"verde", "azul"}[c]
}

Exemplos

Implement Stringer so the enum prints a readable name.

Implemente Stringer para o enum imprimir um nome legível.

The log shows 2 because the type has no String method.

O log mostra 2 porque o tipo não tem método String.

Cuidado

Dentro de String, formatar o próprio receiver com %v chama String de novo e estoura a pilha.

Sinônimos

método String

Veja também

Todos os termos de Go