Um momento
Aula 43
Cursos / Aprenda Go / Golang (Curso de Programação)
Como Definir Estruturas (Struct) na Linguagem Golang - Aula de Go

Summary

# Aula sobre Struct na Linguagem Go

Nesta aula, aprendemos sobre o tipo de dados chamado **struct** em Go. A seguir, estão os principais pontos abordados:

## O que é um Struct?

Um struct é uma maneira de agrupar dados relacionados em uma única entidade. Por exemplo, em um jogo 2D, podemos querer armazenar a posição de um jogador, que inclui coordenadas "x" e "y".

## Utilizando Variáveis Comuns

Inicialmente, podemos armazenar as coordenadas em duas variáveis separadas:
```go
x := 40 // posição horizontal
y := 67 // posição vertical

Podemos imprimir essas posições, mas teremos duas variáveis distintas.

Criando um Struct

Para encapsular essas duas variáveis, usamos um struct. A definição de um struct em Go é feita da seguinte forma:

type Posição struct {
    x int
    y int
}

Com isso, temos uma nova entidade chamada Posição, que contém os campos x e y.

Instanciando e Modificando um Struct

Podemos criar uma instância do struct e atribuir valores:

pos := Posição{x: 40, y: 67}

Para modificar os campos de um struct, usamos a notação ponto:

pos.y = 51

Agora, pos.y terá o valor 51.

Imprimindo Campos de um Struct

Se quisermos imprimir apenas um campo de um struct, usamos a mesma notação:

fmt.Println(pos.x) // imprime 40

Resumo

  • Para definir um tipo struct, utilizamos type NomeDoTipo struct {...}.
  • Para criar uma instância, usamos NomeDoTipo{...}.
  • A modificação de campos é feita com instancia.campo = valor.
  • Para imprimir valores de campos, usamos fmt.Println(instancia.campo).

Essa foi uma introdução ao uso de structs na linguagem Go. Até a próxima!

Video Transcript

Nesta aula vamos aprender sobre struct na linguagem go. Vamos aprender sobre esse novo tipo de dados, chamado estrutura, struct. Então, para que eu usar struct? Vamos supor que a gente tenha um jogo, esse jogo é de duas dimensões, então o jogador tem uma certa posição. Queremos armazenar a posição do jogador no x e no y, então a posição x do jogador a gente poderia fazer uma variável, variável x de tipo int, por exemplo, e o jogador estaria na posição 40 na horizontal, também tem a posição na vertical, vamos falar o valor variável x de tipo int, não diga que está a 67 na vertical. Agora temos duas variáveis separadas, vamos imprimir o valor aqui, eu vou usar printf na verdade, para poder usar o percentual de, que desse mal, y, percentual de, vou usar x, x corresponde a esse primeiro percentual de, e o y é segundo por cento de, vamos salvar o run struct, obviamente eu esqueci o barra n para poder quebrar a linha, pronto. Então, essa é a posição do jogador do jogo, que a gente está fazendo, por exemplo, 40 e 67, mas a posição está em duas variáveis diferentes, seria legal se a gente pudesse encapsular esses dois valores em uma só entidade, para isso a gente pode fazer o seguinte, criar um struct, então como é que cria um struct, vamos falar aqui, então a gente fala o seguinte, fala type, e o nome desse novo tipo, nesse caso vou falar a posição, e tem que falar seguido de struct, então você vai dizer type, nome desse novo tipo, e vai ser um struct, agora tem que dizer, tem que descrever os atributos struct, nesse caso da posição x e a posição y, então vou dizer x, valor índice, vou dizer y, valor índice, tá bom? Agora com isso a gente tem uma só entidade chamada posição, que tem aqui no lado do valor de x e de y, tá? Então se eu remover isso aqui, 40 e 67, e eu pô aqui no print ln, uma posição dessa maneira aqui, 40 e 67, se eu me lembro, então vamos ver o que acontece, então a gente imprime essa struct de posição, que é um struct literal que eu estou fazendo, e o que é que está fazendo? Ele vai criar uma struct posição e o valor do x será 40, e o valor do y será 67, tudo respectivamente, tá? O primeiro é esse aqui e o segundo é o y, nessa ordem aqui, tá? Agora como é que a gente faz para poder modificar um struct? Vamos pegar esse cara aqui, vou recortar e vou criar uma variável, se eu mais variável de p os, e vou colar aquele struct, então vou atribuir essa struct literal a essa variável p os, eu esqueci os dois pontos, tá? Dois pontos igual. Agora para poder modificar o x, deixa eu dar o print ln do p os, ver se não deu problema, tá tudo certo ainda. Então vamos fazer o seguinte, quero modificar o valor do y para 51, tá? Então você vai fazer o seguinte, é só dizer o nome do variável, ponto, tá? E o nome do atributo, no caso o y, e põe o valor aqui igual o valor, 51, olha o que vai acontecer quando a gente dá o print ln do p os. Agora o note que o y virou 51 vezes 67, é assim que a gente modifica um struct, tá? É só dizer a variável e armazena struct, ponto, ponto, o nome do atributo, tá? O nome do campo dessa struct, nesse caso tem dois campos, não y, então eu atribui, né? Reatribui, o y mudou para 51, tá? Se quiser mudar o x, só mudar aqui, então x seria 51 nesse caso e o y permaneceria 67, tá? Revertir para y. Agora se quiser só imprimir o valor de um dos campos dessa struct, é só fazer a mesma coisa que você fez aqui, você fala p os, por exemplo, se eu quiser mostrar o valor só do x, eu falo pos, ponto x e ele vai ser o imprimir o valor x desse p os aqui, que nesse caso será 40, vamos ver. Então imprimir o 40, como a gente já esperava. Tá bom? Então essa é a introdução à struct na linguagem go, aprendemos a definir um novo de dados chamado struct, tá? A gente fez a posição para poder encapsular as posições x y de um certo jogador em um jogo de duas dimensões. Então é só falar type, seguido do nome desse novo tipo, seguido de struct. Aí entre os chaves você põe a esse caso em cada linha um nome, né? Da primeira variável encapsulado, primeiro campo x tipo int nesse caso, depois o segundo campo y tipo int nesse caso. Para poder fazer uma struct literal, é só dizer o nome da struct, seguido de abre-chaves e entra chaves em uma lista separada por uma vírgula, você põe os valores correspondentes a cada campo em ordem, tá? Respectivamente nesse caso x será o primeiro e y será o primeiro. Você pode armar isso na variável, se quiser modificar essa struct, você pode modificar o valor de cada atributo usando ponto e o nome desse campo, nesse caso poderia ser x ou pode ser y para você modificar. Agora para poder imprimir o valor de certos campos de uma struct é só dizer o nome da variável ponto o nome do campo, nesse caso poderia ser pos ponto x ou pos ponto y, tá? E ele imprimir irá imprimir o valor desse campo. Tá bom então por essa aula é só e até a próxima.
Nenhum comentário ainda (loading...)
Nenhum comentário ainda (loading...)
Gostou da aula? 😆👍
Apoie nosso trabalho com uma doação: