Carregando

Aula 43 de 64· 8:17

Como Definir Estruturas (Struct) na Linguagem Golang - Aula de Go

# 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!

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.
A seguirEstruturas struct Literais na Linguagem Golang - Aula de GoAula 44 · 5:48

Comentários

Entre para participar da conversa.

Carregando comentários…