Aula 43
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: