go version
)?go version go1.9.2 linux/amd64
Jawohl
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.
Wie time.Time kann es einige andere Typen geben, die nicht als Kartenschlüsseltypen verwendet werden können.
nichts gemeldet
Ich glaube nicht, dass dies die Messlatte für einen Tierarztcheck erfüllt.
Es ist absolut gültig, eine Zeit.Zeit als Kartenschlüssel zu verwenden, wenn Sie wissen, was Sie tun. Ich denke, es wäre zu laut für gültigen Code.
Aber jemand könnte auf GitHub eine Analyse durchführen, um zu sehen, wie viel Prozent der Zeitkarten gültig sind.
Ich habe einen Linter geschrieben, der diese Art von Problem erkennt, wenn Sie interessiert sind: https://github.com/m3db/build-tools/blob/master/linters/badtime/README.md
Ich versuche gerade, es in gometalinter zu integrieren.
Jetzt, wo der Tierarzt Teil des Go-Tests ist, liegt die Messlatte für neue Kontrollen noch höher. Weil es manchmal gültig _ist_, eine Zeit.Zeit als Kartenschlüssel zu haben, ist es nicht in Ordnung, sie beim Tierarzt abzulehnen.
Du könntest mit
Hilfreichster Kommentar
Ich glaube nicht, dass dies die Messlatte für einen Tierarztcheck erfüllt.
Es ist absolut gültig, eine Zeit.Zeit als Kartenschlüssel zu verwenden, wenn Sie wissen, was Sie tun. Ich denke, es wäre zu laut für gültigen Code.
Aber jemand könnte auf GitHub eine Analyse durchführen, um zu sehen, wie viel Prozent der Zeitkarten gültig sind.