go version
)?go versi go1.9.2 linux/amd64
Ya
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.
Seperti time.Time, mungkin ada beberapa tipe lain yang tidak bisa digunakan sebagai tipe kunci peta.
tidak ada yang dilaporkan
Saya tidak berpikir ini memenuhi standar untuk pemeriksaan dokter hewan.
Sangat valid untuk menggunakan waktu.Waktu sebagai kunci peta, jika Anda tahu apa yang Anda lakukan. Saya pikir itu akan terlalu berisik untuk kode yang valid.
Tetapi seseorang dapat melakukan beberapa analisis di GitHub untuk melihat persentase waktu. Peta dengan kunci waktu valid.
Saya menulis linter yang mendeteksi masalah jenis ini jika Anda tertarik: https://github.com/m3db/build-tools/blob/master/linters/badtime/README.md
Saya mencoba untuk membuatnya terintegrasi dengan gometalinter sekarang.
Sekarang dokter hewan adalah bagian dari go test, standarnya bahkan lebih tinggi untuk pemeriksaan baru. Karena terkadang _is_ valid untuk memiliki waktu. Waktu sebagai kunci peta, menolaknya di dokter hewan tidak boleh.
Anda dapat berbicara dengan @dominikh tentang menambahkan ini ke megacheck atau salah satu linter lainnya.
Komentar yang paling membantu
Saya tidak berpikir ini memenuhi standar untuk pemeriksaan dokter hewan.
Sangat valid untuk menggunakan waktu.Waktu sebagai kunci peta, jika Anda tahu apa yang Anda lakukan. Saya pikir itu akan terlalu berisik untuk kode yang valid.
Tetapi seseorang dapat melakukan beberapa analisis di GitHub untuk melihat persentase waktu. Peta dengan kunci waktu valid.