"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > 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 ?

Publié le 2024-11-11
Parcourir:695

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 par conversion 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.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3