go version
)?go versão go1.9.2 linux / amd64
sim
package main
import "time"
type T struct {
time.Time
}
var a map[T]string
func main() {
}
$ go vet a.go
$ [nothing reported]
$ go vet a.go
$ time.Time is not a good map key type.
Como time.Time, pode haver alguns outros tipos, que não podem ser usados como tipos de chave de mapa.
nada relatado
Eu não acho que isso atenda a um exame veterinário.
É perfeitamente válido usar um time.Time como uma chave de mapa, se você souber o que está fazendo. Acho que seria muito barulhento para um código válido.
Mas alguém poderia fazer algumas análises no GitHub para ver qual porcentagem de tempo. Mapas com chave de tempo são válidos.
Escrevi um linter que detecta esse tipo de problema se você estiver interessado: https://github.com/m3db/build-tools/blob/master/linters/badtime/README.md
Estou tentando integrá-lo ao gometalinter agora.
Agora que o veterinário faz parte do teste go, a barra é ainda maior para novos exames. Porque às vezes é válido ter um tempo. O tempo como chave do mapa, rejeitá-lo no veterinário não está certo.
Você pode falar com @dominikh sobre como adicionar isso ao megacheck ou a um dos outros linters.
Comentários muito úteis
Eu não acho que isso atenda a um exame veterinário.
É perfeitamente válido usar um time.Time como uma chave de mapa, se você souber o que está fazendo. Acho que seria muito barulhento para um código válido.
Mas alguém poderia fazer algumas análises no GitHub para ver qual porcentagem de tempo. Mapas com chave de tempo são válidos.