Mapa de Golang

Mapa de Golang
Os mapas são uma estrutura de dados fundamental na maioria das linguagens de programação. Os mapas se referem a uma coleção de pares de valores-chave usados ​​para armazenar dados não ordenados. Em outras linguagens de programação, os mapas são chamados de dicionários, hash, matriz associativa, mapa de hash ou mapas não ordenados.

Independentemente do nome, os mapas fornecem versatilidade, dados rápidos e eficientes, atualizações e exclusão usando o conjunto de teclas exclusivas.

O foco principal deste tutorial é guiá -lo através da criação e uso de mapas na linguagem de programação Go.

Vá criar mapa

Existem duas maneiras de criar um mapa na linguagem de programação Go.

Mapa literal

O primeiro método é usar um mapa de palavras -chave seguido pelo tipo de dados da chave (fechado entre colchetes) e o tipo de dados dos valores.

Depois de definir o mapa, você pode inserir o conjunto de pares de valor-chave dentro de um par de aparelhos encaracolados.

A sintaxe é como mostrado:

mapa [key] valor
valor chave

Os mapas são muito úteis ao armazenar dados relacionados, como informações do usuário. Por exemplo, o código a seguir cria um mapa que armazenando informações do usuário.

user_info: = map [string] string
"Id": "1",
"Nome": "Jonh Doe",
"Departamento": "Desenvolvedor de Jogos",
"Salário": "$ 140.000",
"Country": "Bulgária",

Observe que os pares de valor-chave do mapa estão fechados dentro dos aparelhos encaracolados. O valor à esquerda do cólon representa a chave, enquanto o valor à direita representa o valor associado.

No exemplo acima, formatamos os pares de valor-chave como JSON para facilitar a legibilidade; No entanto, você pode ter uma liner como:

user_info: = map [string] string
"ID": "1", "Nome": "Jonh Doe", "Departamento": "Desenvolvedor de Jogos", "Salário": "$ 140.000", "Country": "Bulgária",

Certifique-se de separar cada par de valores-chave com uma vírgula.

Abordagem funcional

O segundo método que você pode usar para criar um mapa em Go é a função Make. Esta é uma função interna que permite que você passe o tipo de mapa para criar. Ele retorna um mapa inicializado. A sintaxe é como mostrado abaixo:

make (map [key_type] value_type)

A função retornará um mapa vazio.

Você pode atribuir um mapa a uma variável como outras linguagens de programação, como mostrado nos exemplos acima.

Para ver os valores-chave na matriz, você pode usar o FMT.Método println, como mostrado no exemplo abaixo:

Pacote principal
importar "fmt"
func main ()
user_info: = map [string] string
"ID": "1", "Nome": "Jonh Doe", "Departamento": "Desenvolvedor de Jogos", "Salário": "$ 140.000", "Country": "Bulgária",

fmt.Println ("mapas:", user_info)

O código acima deve retornar a saída como mostrado:

::saída
Mapas: MAP [país: Departamento da Bulgária: Desenvolvedor de Jogos ID: 1 Nome: Jonh Doe Salário: US $ 140.000]

Acessando itens do mapa

Para obter o valor armazenado em um mapa, você pode usar sua chave única. Golang deve retornar o valor associado à chave especificada.

Por exemplo:

fmt.Println (user_info ["name"]))

O trecho acima deve retornar o valor associado à chave "nome" do mapa user_info.

A saída é como mostrado ”

::saída
Jonh doe

Como cada chave em um mapa é única, o código acima deve sempre retornar um único valor associado a uma chave se existir.

Portanto, usar mapas é eficiente para informações relacionadas.

Iteração do mapa

A próxima pergunta vem, como você itera sobre os itens em um mapa? Ao contrário de outras linguagens de programação, que fornecem funções internas para buscar chaves e valores, GO não.

No entanto, ele permite que você itera um mapa usando o operador de intervalo.

Vamos dar o exemplo do mapa user_info que criamos anteriormente. Podemos usar o operador de intervalo para iterar sobre as chaves e valores do mapa, conforme mostrado no código de exemplo abaixo:

para k, v: = range user_info
fmt.Printf (" %q -> %q \ n", k, v)

No código acima, o GO iterará sobre os itens e retornará cada chave e seu valor associado. Observe que o GO criará as variáveis ​​com o tipo de conjunto. Por exemplo, a chave e o valor são strings; Portanto, podemos usar o %Q formatador para imprimir seu valor usando a função Printf.

A saída resultante é como mostrado:

"ID" -> "1"
"Nome" -> "Jonh Doe"
"Departamento" -> "Desenvolvedor de Jogos"
"Salário" -> "$ 140.000"
"Country" -> "Bulgária"

O que acontece quando você precisa acessar apenas as chaves? Você pode declarar uma variável para armazenar as chaves e depois usar o operador de intervalo nesse cenário.

Considere o exemplo mostrado abaixo:

chaves: = [] string
para k: = range user_info
chaves = anexar (chaves, k)

fmt.Printf ("%q", chaves)

No exemplo acima, começamos definindo uma fatia para armazenar as chaves do mapa. Em seguida, usamos o operador de alcance para iterar sobre as chaves e anexar cada chave à fatia.

Finalmente, imprimimos as chaves usando o método printf. A saída resultante é como mostrado:

["ID" "Nome" "Departamento" "Salário" "Country"

Você aplica a mesma técnica acima para obter os valores de um mapa.

Comprimento do mapa

Em Golang, você pode obter o comprimento de um mapa usando o método Len. Isso retorna o número de itens no mapa.

Por exemplo:

fmt.Println (len (user_info))

O número de itens no mapa é:

5

Adicionar, atualizar, excluir teclas e valores

Em Go, os mapas são mutáveis. Isso significa que você pode adicionar, excluir ou atualizar itens existentes no mapa.

Vejamos alguns exemplos de como executar essas operações.

Adicionar novo item

Para adicionar um novo item a um mapa, faça referência ao nome do mapa seguido pela chave entre colchetes e um único canto (=) para atribuir um novo valor.

A sintaxe é como mostrado:

map_name [key] = valor

Vamos adicionar uma nova chave ao mapa user_info, como mostrado no exemplo abaixo:

user_info ["DOB"] = "06/06/1995"

No exemplo acima, adicionamos um novo item chamado "DOB" ao mapa user_info. Lembre -se de que os itens no mapa não são ordenados. Portanto, adicionar um novo item não significa que ele aparecerá como o último ou o primeiro item no mapa.

Atualize um item

Suponha que precisamos alterar uma informação sobre o usuário. Por exemplo, diga que o usuário recebeu um aumento (sim!), e precisamos atualizar as informações.

Podemos usar uma sintaxe semelhante ao adicionar uma nova chave. No entanto, fazemos referência a uma chave existente no mapa neste caso.

Um exemplo é como mostrado:

user_info ["Salário"] = "$ 160.000"

O código acima deve alterar o valor da chave "salário" para o novo valor especificado.

A saída resultante é como mostrado:

fmt.Println (user_info)

A saída é como mostrado:

[País: Departamento da Bulgária: Desenvolvedor de Jogos DOB: 06/06/1995 ID: 1 Nome: JONH Salário: $ 160.000]

Observe que o novo valor da chave do salário é atualizado para refletir os novos dados.

Dica: uma maneira melhor de pensar nisso, se o item existir, atualize o valor; Caso contrário, crie um novo item.

Exclua um item

GO também permite que você exclua um item do mapa. Utilizamos o método delete (), que leva dois argumentos.

O primeiro argumento é o nome da variável do mapa sob a qual excluir um item, e o segundo é a chave para excluir.

Veja o exemplo mostrado abaixo:

delete (user_info, "departamento")
fmt.Println (user_info)

A função excluirá o "departamento" do mapa user_info. O mapa resultante é como mostrado:

Mapa [País: Bulgária ID: 1 Nome: Jonh DOE Salário: US $ 140.000]

Limpe um mapa

Suponha que você queira limpar um mapa de todos os itens existentes? Para fazer isso, você pode definir os valores como um mapa vazio com a mesma chave e tipo de valor.

Por exemplo:

user_info = map [string] string

O exemplo acima deve re-unirizar o mapa user_info para um mapa vazio.

Dica: os mapas são uma coleção não ordenada e operações como iterações nem sempre resultam na mesma ordem de itens. Se o pedido for uma necessidade, considere outro tipo de dados.

Conclusão

Neste guia, exploramos mapas na linguagem de programação Go. Usando mapas, você pode criar um conjunto de itens não ordenados e usar cada chave exclusiva para acessar os itens. Isso remove a necessidade de índices para acessar itens.

Obrigado pela leitura e volte para mais tutoriais Go.