Maison > développement back-end > Golang > le corps du texte

Renvoie les clés de niveau supérieur de la carte à l'aide de paramètres de type génériques

WBOY
Libérer: 2024-02-08 20:42:18
avant
465 Les gens l'ont consulté

Renvoie les clés de niveau supérieur de la carte à laide de paramètres de type génériques

Contenu de la question

J'ai la méthode suivante qui renvoie le type 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
}
Copier après la connexion

Comment puis-je réutiliser cette méthode si j'ai un map 但类型为 map[string]map[string]string. Existe-t-il un moyen de généraliser cette méthode puisque tout ce qu'elle ferait serait de renvoyer la clé de niveau supérieur de la carte.


Bonne réponse


Avec go 1.18+, vous pouvez utiliser les paramètres de type :

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
}
Copier après la connexion

https://www.php.cn/link/3eb46aa5d93b7a5939616af91addfa88

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal