"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > As fatias podem ser usadas como chaves de mapa no Go?

As fatias podem ser usadas como chaves de mapa no Go?

Publicado em 2024-11-11
Navegar:770

Can Slices Be Used as Map Keys in Go?

Usando fatias e matrizes como chaves de mapa

No Go, as chaves de mapa devem implementar os operadores == e != para comparar sua igualdade. As fatias não implementam esses operadores, portanto, as fatias não podem ser usadas diretamente como chaves de mapa. No entanto, matrizes podem ser usadas como chaves de mapa porque implementam os operadores necessários.

Usando matrizes como chaves de mapa

Para usar uma matriz como chave de mapa, você pode declare o mapa usando o tipo array como tipo de chave. Por exemplo:

package main

import "fmt"

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

Este mapa tem um tipo de chave [2]int, que é uma matriz de dois inteiros. O tipo de valor do mapa é bool.

Usando fatias convertendo em strings

Se precisar usar uma fatia como chave do mapa, você pode converter a fatia para uma string e use a string como chave. Por exemplo:

package main

import (
    "fmt"
    "strconv"
)

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

Este mapa possui um tipo de chave de string, que é uma representação de string da fatia de strings. O tipo de valor do mapa é bool.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3