Maison >développement back-end >Golang >Les tranches peuvent-elles être utilisées comme clés de carte dans Go ?

Les tranches peuvent-elles être utilisées comme clés de carte dans Go ?

DDD
DDDoriginal
2024-11-12 04:22:01534parcourir

Can Slices Be Used as Map Keys in Go?

Utilisation de tranches et de tableaux comme clés de carte

Dans Go, les clés de carte doivent implémenter les opérateurs == et != pour comparer leur égalité. Les tranches n'implémentent pas ces opérateurs, elles ne peuvent donc pas être utilisées directement comme clés de mappage. Cependant, les tableaux peuvent être utilisés comme clés de mappage car ils implémentent les opérateurs nécessaires.

Utiliser des tableaux comme clés de mappage

Pour utiliser un tableau comme clé de mappage, vous pouvez déclarez la carte en utilisant le type de tableau comme type de clé. Par exemple :

package main

import "fmt"

func main() {
    m := make(map[[2]int]bool)
    m[[2]int{1, 2}] = false
    fmt.Printf("%v", m)
}

Cette carte a un type de clé de [2]int, qui est un tableau de deux entiers. Le type de valeur de la carte est bool.

Utilisation de tranches en les convertissant en chaînes

Si vous devez utiliser une tranche comme clé de carte, vous pouvez convertir la tranche à une chaîne et utilisez la chaîne comme clé. Par exemple :

package main

import (
    "fmt"
    "strconv"
)

func main() {
    m := make(map[string]bool)
    m[strconv.Itoa([]string{"a", "b"})] = false
    fmt.Printf("%v", m)
}

Cette carte a un type de chaîne clé, qui est une représentation sous forme de chaîne de la tranche de chaînes. Le type de valeur de la carte est bool.

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:
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