从映射中检索键时,确保类型兼容性至关重要。 Go 的强类型要求映射相同类型的键。不幸的是,如果您的 Keys() 函数指定了 map[interface{}]interface{} 类型的映射,但您的实际映射是 map[int]interface{} 类型,您将遇到类型不匹配错误。
Go 不支持泛型,与 Java 或 C# 等语言不同。这简化了语言并提高了性能。因此,您无法创建对任何键或值类型的映射进行操作的泛型函数。
要解决类型不匹配问题,您有多种选择:
func Keys(m map[int]interface{}) []int { keys := make([]int, len(m)) i := 0 for k := range m { keys[i] = k i++ } return keys }
m2 := map[interface{}]interface{}{ 2: "string", 3: "int", }
以上是如何在 Go 中安全检索映射键:解决类型不匹配问题?的详细内容。更多信息请关注PHP中文网其他相关文章!