Um momento
Aula 50
Cursos / Aprenda Go / Golang (Curso de Programação)
Map Com Chave String Mapeando para Valor Struct - Aula de Golang

Summary

# Resumo do Aprendizado sobre Maps em Go

Neste tutorial, aprendemos a utilizar o `map` em Go para mapear strings a uma estrutura (struct). Vamos seguir as etapas abordadas:

## Definição da Estrutura

1. **Criando uma Struct `perfil`**:
   - A estrutura `perfil` representa um perfil de uma rede social de namoro.
   - Campos definidos:
     - `altura` (float64)
     - `ativo` (booleano)
     - `profissao` (string)

   Exemplo de definição:
   ```go
   type perfil struct {
       altura   float64
       ativo    bool
       profissao string
   }

Criando o Map

  1. Definindo um Map:
    • Usamos a função make para criar um map que associa um string a um perfil.
    Exemplo de definição:
    perfis := make(map[string]perfil)
    

Adicionando Perfis

  1. Adicionando um perfil para João:

    • Criamos um perfil literal para João:
    perfis["João"] = perfil{1.74, true, "médico"}
    
  2. Imprimindo o resultado:

    • Usamos fmt.Println para verificar se o perfil foi adicionado corretamente.

Diagnóstico de Erros

  1. Depuração de Sintaxe:
    • Discutimos como debugar erros de sintaxe relacionados à definição do struct e ao uso do map. Por exemplo, evitar vírgulas desnecessárias após a definição de campos.

Exercício

  1. Praticando a Criação de Outro Perfil:
    • Foi proposto criar um perfil para Maria com as seguintes características:
      • Altura: 1.63
      • Ativo: false
      • Profissão: engenheira
    • Exemplo de implementação:
    perfis["Maria"] = perfil{1.63, false, "engenheira"}
    

Conclusão

  • Ao final, aprendemos a mapear strings para uma struct em Go e a depurar erros quando necessário.
  • Na próxima aula, continuaremos com mais práticas sobre maps e structs.

Até a próxima!

Video Transcript

Nós vamos aprender como fazer o map por de valor, em vez de ser um simples intro ou uma string, nós vamos usar um struct, uma estrutura com o valor de um map. Mas a gente vai aprender o básico do map, então não vai ser nada de novo. Mas é só para a gente ver como é que faz um map que mapeia de string para um struct. Então vamos começar. Vamos supor, por exemplo, que a gente tenha um struct aqui, type, vamos fazer um struct, primeiro digita type, perfil struct. Essa struct vai ser, por exemplo, o perfil de uma rede social de namoros, por exemplo. Então cada pessoa mostra seu perfil com vários parâmetros e o pessoal vai fazer a busca e tem vários parâmetros. Vamos simplificar, vamos usar, por exemplo, a gente pode saber a altura do indivíduo. A gente precisa também saber se o perfil está ativo para poder mostrar no front end, por exemplo. E você tem, sei lá, a profissão do indivíduo. Então um perfil assim de um aplicativo de namoros. Então vamos dizer aqui, vamos criarmos um struct, type, o nome é perfil, tá, um struct. Agora vamos definir cada campo, eu já botei o nome, só nos resta definir o tipo de cada um. A altura eu vou usar um float64 para ver se o perfil está ativo ou não. Vou usar um simple struct, valor booleano, para a profissão só vou usar um struct, tá. Essa maneira aqui. Pronto? Se quiser, pode também definir por aqui. Não te faz. Então temos o perfil, vamos aprender agora como a gente pode fazer um map que vai mapear o nome da pessoa, tá. Um nome a um perfil. Então, por exemplo aqui. Vamos fazer um map usando o make, tá. Então vai... Vou falar pessoa 1, pessoas e perfis, né, na verdade. Perfis ao tipo vai ser um map de que? Vamos mapear de string para o que? Agora o valor, o tipo do valor será o perfil, tá. Que a gente definiu, nosso próprio tipo, tá. Vai ser igual ao que? Vamos criar aqui make. Make o que? Vamos criar um map. Da mesma coisa que eu digitei antes. Na verdade, se quiser, pode omitir essa parte aqui. Mas eu escrevi tudo longo para você entender o que a gente vai fazer. Mas quando você aprender tudo isso, você pode começar a omitir as coisas. Se você já sabe, já entende o que está acontecendo, né. Mas sempre é bom começar assim, quando você começa do zero, digita tudo, explícito para você entender o que está acontecendo. Então a gente chama a função make para poder criar um map para mapear uma chave de tipo string para um valor de tipo perfil. Perfil é um tipo que nós definimos aqui, é um simple struct, com 3 campos. Campos de altura, ativo e profissão. A altura é um valor de ponto flutuante, ativo um valor true ou false, e o profissão é simple string. Então temos a variável perfil, legal, criamos o map. Agora nós podemos, por exemplo, eu vou definir o perfil para o João. Perfis, o nome vai ser a chave, tá. Aqui que eu vou digitar, João. Perfíto do João vai ser o seguinte. Vamos criar um perfil literal aqui, tá. Então perfil literal, você digita o nome do struct, abre as chaves e define cada propriedade. Pode ser em ordem se você não especificar o nome delas. Então vamos fazer em ordem. Qual é a altura? Vamos... uma altura arbitrária, um metro, ponto 74, tá. Então a altura é em metro, estou usando. O ativo, sim, eu vou dizer ativo, que o perfil está ativo, profissão, sei lá, tá médico, tá. Então vamos dar o print ln aqui do pacote fmt para ver se realmente isso deu certo. O meu arquivo agora é maps3.go, que eu vou... sei lá, go run maps3.go. E tem um erro aqui de sintaxi, unexpected comma. Ele estava esperando o semicolon, ponto e virula, ou nova linha, linha 6, vamos ver. Linha 6, ah, desculpa, eu fiz um erro aqui. Não preciso dar virula, aqui, tá. Comentei um erro ali, então resolveu o primeiro problema. Isso é bom para a gente aprender como é que debuga, se tem um erro, tem aqui a linha, número da linha, tá. E a coluna 17, então o arquivo está aqui, maps3.go. E aqui é o erro, erro de sintaxi, uma virula inesperada, que eu tinha adicionado a virula depois de cada definição dos truck, ele esperou um semicolon ou uma nova linha, ou até a fechamento da chave. Então não precisa de dar virula, tá, quando você definir struct. Às vezes a gente esquece dessas coisas e o compilador nos diz e a gente corrige e aprende com os nossos erros. Agora tem outro erro, nos resta esse erro, no arquivo maps3.go, linha 15, coluna 25, é um erro de sintaxi, tá. A nova linha inesperada, esperava uma virula ou o fechamento da chave. Então vamos lá para a linha 15, coluna 25, aqui você note no meu editor de texto, tem dizendo onde está a coluna 25, aqui no final. Então ele esperava que eu digitasse uma virula ou até fechasse a chave dessa maneira aqui, tanto faz, tá. Você vê que funcionou assim e funciona com a virula lá, tá. Então aqui o console println deu o primeiro map, tem juão, na hora de que o juão mapeia para um struct que tem os valores 1.74, true e médico, respectivamente para altura, ativo e profissão. Então deu tudo certo, no nosso mapeamento de string para um struct de perfil. E a gente pode fazer outro também, eu quero que com um exercício você faça comigo, vamos fazer o perfil para Maria. Eu quero que você defina uma altura de 1 metro e 63 e ativo é false, profissão, engenheira, tá. Vamos lá, Maria, perfil, o que é que eu te falava 63, false, engenheira, tá. Então temos aqui um perfil literal, né. E agora se a gente dá o println, tem também, eu esqueci do que? Olha aqui o eu, quer que eu esqueci de novo. Quero que você pratique o programas, né. Onde é qual é o arquivo? Arquivo maps 3.go que eu já tenho aberto, qual é a linha? Linha 18. Linha 18 é essa aqui, qual é a coluna? 30, coluna 30 é aqui, tá. No final, e tá dizendo nova linha inesperada, esperava que tivesse uma vírgula ou o fechamento da chave, tanto faz você usar, eu só vou selecionar essa vírgula, tá. Legal, agora o map tem duas chaves, né, duas propriedades de Juan e Maria. De Juan já tínhamos antes, Maria agora mapeia para um struct com esses valores de maps 63 para altura, false, prático e engenheira como profissão. Tá legal. Então vamos dar uma pausa por aqui e de vez na próxima aula. Até mais.
Nenhum comentário ainda (loading...)
Nenhum comentário ainda (loading...)
Gostou da aula? 😆👍
Apoie nosso trabalho com uma doação: