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.
Comentários
Entre para participar da conversa.
Carregando comentários…