Maison  >  Article  >  développement back-end  >  Renvoie les clés de niveau supérieur de la carte à l'aide de paramètres de type génériques

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

WBOY
WBOYavant
2024-02-08 20:42:18419parcourir

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
}

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
}

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer