Como Criar uma Estrutura de Hash Map na Linguagem Golang

in #golang6 years ago (edited)

A estrutura que associa uma chave à um valor na linguagem
Golang é chamada de Map.

O tipo é formado da seguinte maneira:

map[TIPO_DA_CHAVE]TIPO_DO_VALOR

Por exemplo, para criar um mapa de string para int:

map[string]int

A construção acima significa que o map aceita como chave uma string; essa string é associada à um valor do tipo int.

Imagine que em uma escola, os alunos fazem uma prova e recebem uma nota como resultado. Podemos associar o nome de cada aluno ao valor de sua nota dessa maneira:

var notas map[string]int
notas = make(map[string]int)

notas["Ana"] = 9
notas["Maria"] = 10
// e assim por diante...

A primeira linha do exemplo acima declara uma variável para armazenar um map de string para int.

Logo em seguida, criamos o map usando a função make. Vale a pena lembrar que make também é usado para criar slices (fatias de array). Nesse caso, usamos o make para criar um map que associa uma string à um valor int.

As linhas que seguem associam o nome de cada estudante ao valor da nota recebida na prova. A notação para adicionar ou atualizar um par de chave-valor em Golang é, em geral:

notas[CHAVE] = VALOR

Podemos também acessar o valor correspondente a chave assim:

fmt.Println(notas["Maria"]) // => 10

Mas temos que tomar cuidado porque pode ser que a chave não exista no Map, em cujo caso o valor zero do tipo do valor associado é retornado:

fmt.Println(notas["Estudante Que Nao Existe"]) // => 0

A chave mapeia para um valor do tipo int, cujo valor zero é 0.

Há uma maneira de checar se a chave existe antes se referenciar o seu valor. Para aprender mais sobre a estrutura Map na linguagem Golang, assista às aulas do NBK Mundo Tech: