首页 >后端开发 >Golang >使用通用类型参数从映射返回顶级键

使用通用类型参数从映射返回顶级键

WBOY
WBOY转载
2024-02-08 20:42:18481浏览

使用通用类型参数从映射返回顶级键

问题内容

我有以下方法,它返回 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

以上是使用通用类型参数从映射返回顶级键的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文转载于:stackoverflow.com。如有侵权,请联系admin@php.cn删除