您的类型不应具有可比性,以免不适合作为映射键。切片、映射和函数值不可比较请参阅密钥类型:列表中明显没有切片、映射和函数。这些类型不能使用 比较==,也不能用作映射键。所以如果你的类型是切片、映射或函数,你应该得到你需要的。它可能是一个“别名”(定义一个新的命名类型):type StringSliceWrap []stringtype MyFunc func(i int)该别名不会用作映射键。2017 年更新:Brad Fitzpatrick 提供此提示(在您的 中添加一个切片struct)以确保您的类型struct不可比较:请参阅play.golang.org:package main// disallowEqual is an uncomparable type.// If you place it first in your struct, you prevent == from// working on your struct without growing its size. (Don't put it// at the end; that grows the size of the struct)type disallowEqual [0]func()type T struct { _ disallowEqual Foo string Bar int}func main() { var t1 T var t2 T println(t1 == t2)}T 现在不能用作amp键!