go version
)?转到版本 go1.9.2 linux/amd64
是的
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.
像 time.Time 一样,可能还有一些其他类型不能用作映射键类型。
没有报道
我认为这不符合兽医检查的要求。
如果您知道自己在做什么,那么使用 time.Time 作为映射键是完全有效的。 我认为对于有效代码来说太吵了。
但是有人可以在 GitHub 上做一些分析,看看有多少时间是有效的。时间键控的地图是有效的。
如果您有兴趣,我编写了一个检测此类问题的 linter: https :
我现在正在尝试将其与 gometalinter 集成。
既然兽医是 go test 的一部分,新检查的标准就更高了。 因为有时有时间是有效的。时间作为地图键,在兽医中拒绝它是不行的。
您可以与@dominikh讨论将其添加到 megacheck 或其他短绒工具之一。
最有用的评论
我认为这不符合兽医检查的要求。
如果您知道自己在做什么,那么使用 time.Time 作为映射键是完全有效的。 我认为对于有效代码来说太吵了。
但是有人可以在 GitHub 上做一些分析,看看有多少时间是有效的。时间键控的地图是有效的。