我有以下方法,它返回 map
中的所有键。但它接受的参数必须是 map[string]string
类型。
func GetAllKeys(m map[string]string) []string {
keys := make([]string, len(m))
i := 0
for k := range m {
keys[i] = k
i++
}
return keys
}
如果我有一个 map
但类型为 map[string]map[string]string
,我如何重用此方法。有没有办法概括这个方法,因为它所要做的就是从映射中返回顶级键。
正确答案
使用 go 1.18+,您可以使用 类型参数:
func GetAllKeys[K comparable, V any](m map[K]V) []K {
keys := make([]K, len(m))
i := 0
for k := range m {
keys[i] = k
i++
}
return keys
}
https://www.php.cn/link/3eb46aa5d93b7a5939616af91addfa88