Go: proposal: cmd/vet: dokter hewan harus memperingatkan kapan waktu. Jenis waktu (atau jenis yang disematkan) digunakan sebagai kunci peta.

Dibuat pada 4 Des 2017  ·  3Komentar  ·  Sumber: golang/go

Versi Go apa yang Anda gunakan ( go version )?

go versi go1.9.2 linux/amd64

Apakah masalah ini muncul kembali dengan rilis terbaru?

Ya

Apa yang kamu lakukan?

package main

import "time"

type T struct {
    time.Time
}

var a map[T]string

func main() {
}

$ go vet a.go
$ [nothing reported]

Apa yang Anda harapkan untuk dilihat?

$ 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.

Apa yang Anda lihat sebagai gantinya?

tidak ada yang dilaporkan

FrozenDueToAge Proposal

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.

Semua 3 komentar

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.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat