卓越飞翔博客卓越飞翔博客

卓越飞翔 - 您值得收藏的技术分享站
技术文章34331本站已运行393

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

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

问题内容

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

卓越飞翔博客
上一篇: 包含软删除行的 Join 子句
下一篇: 返回列表
留言与评论(共有 0 条评论)
   
验证码:
隐藏边栏