Aula 11 – Tutorial Golang – Maps
Aula 11 – Tutorial Golang – Maps
Página principal do blog
Todas as aulas desse curso
Aula 10 Aula 12
Se gostarem do conteúdo dêem um joinha 👍 na página do Código Fluente no
Facebook
Esse é o link do código fluente no Pinterest
Meus links de afiliados:
Hostinger
Digital Ocean
One.com
Melhore seu NETWORKING
https://digitalinnovation.one/
Participe de comunidades de desenvolvedores:
Fiquem a vontade para me adicionar ao linkedin.
E também para me seguir no https://github.com/toticavalcanti.
Código final da aula:
https://github.com/toticavalcanti
Toti:
https://www.youtube.com/channel/UCUEtjLuDpcOvR3mIUr-viOA
Backing track / Play-along:
https://www.youtube.com/channel/UCT3TryVMqTqYBjf5g5WAHfA
Código Fluente
https://www.youtube.com/channel/UCgn-O-88XBAwdG9gUWkkb0w
Putz!
https://www.youtube.com/channel/UCZXop2-CECwyFYmHbhnAkAw
Aula 11 – Tutorial Golang – Maps
Maps
Map é um tipo de dado associativo integrado do Go, às vezes chamados também de hashes ou dicts em outras línguagens.
Para criar um map vazio, use o make: make (map [key-type] val-type).
Nesse caso, estamos criando um map vazio onde a chave é string e o valor um inteiro.
m := make(map[string]int)
Define os pares de chave/valor usando a sintaxe típica name[chave] = val.
m["k1"] = 7
m["k2"] = 13
Imprime um map com: fmt.Println mostrando todos os seus pares de chave/valor.
fmt.Println("map: ", m)
Saída:
map: map[k1:7 k2:13]
Obtém um valor para uma chave com nome[chave] e imprime.
v1 := m["k1"]
fmt.Println("v1: ", v1)
Saída:
v1: 7
A função len() embutida por padrão no Go, retorna o número de pares de chave/valor.
fmt.Println("len: ", len(m))
Saída:
len: 2
A delete() remove pares de chave/valor de um map.
delete(m, "k2")
fmt.Println("map: ", m)
Saída:
map: map[k1:7]
O segundo valor de retorno opcional ao obter um valor de um map indica se a key está presente no map.
Isso pode ser usado para eliminar a ambiguidade entre chaves ausentes e chaves com valores zero como: 0 ou “”.
Aqui, não precisamos do valor em si, então o ignoramos com o identificador em branco _.
_, prs := m["k2"]
fmt.Println("prs: ", prs)
Saída:
prs: false
Você também pode declarar e inicializar um novo map na mesma linha com esta sintaxe.
n := map[string]int{"foo": 1, "bar": 2}
fmt.Println("map: ", n)
Saída:
map: map[bar:2 foo:1]
Código completo
// _Maps_ are Go's built-in [associative data type](http://en.wikipedia.org/wiki/Associative_array)
// (sometimes called _hashes_ or _dicts_ in other languages).
package main
import "fmt"
func main() {
// To create an empty map, use the builtin `make`:
// `make(map[key-type]val-type)`.
m := make(map[string]int)
// Set key/value pairs using typical `name[key] = val`
// syntax.
m["k1"] = 7
m["k2"] = 13
// Printing a map with e.g. `fmt.Println` will show all of
// its key/value pairs.
fmt.Println("map: ", m)
// Get a value for a key with `name[key]`.
v1 := m["k1"]
fmt.Println("v1: ", v1)
// The builtin `len` returns the number of key/value
// pairs when called on a map.
fmt.Println("len: ", len(m))
// The builtin `delete` removes key/value pairs from
// a map.
delete(m, "k2")
fmt.Println("map: ", m)
// The optional second return value when getting a
// value from a map indicates if the key was present
// in the map. This can be used to disambiguate
// between missing keys and keys with zero values
// like `0` or `""`. Here we didn't need the value
// itself, so we ignored it with the _blank identifier_
// `_`.
_, prs := m["k2"]
fmt.Println("prs: ", prs)
// You can also declare and initialize a new map in
// the same line with this syntax.
n := map[string]int{"foo": 1, "bar": 2}
fmt.Println("map: ", n)
}
E pra executar é só entrar na pasta onde tá o arquivo maps.go e digitar:
go run maps.go