Aula 44
Estruturas struct Literais na Linguagem Golang - Aula de Go
Summary
Resumo da Aula sobre Structs em Go
Nesta aula, continuamos aprendendo sobre como criar e manipular structs na linguagem Go. Aqui estão os principais pontos abordados:
Definição de Structs
- Para criar uma struct em Go, usamos a palavra-chave
type
, seguida do nome da struct e da palavrastruct
. Os campos são definidos entre chaves, onde especificamos o nome da variável, o nome do campo, e o tipo (por exemplo,x int
ey int
para representar uma posição em um plano cartesiano).
Literal de Struct
- Podemos criar structs usando literais, que nos permitem inicializar os valores dos campos diretamente. Por exemplo:
pos := Posição{x: 46, y: 87}
Criação e Inicialização de Variáveis
- Podemos criar uma variável do tipo da struct usando:
var pos Posição pos = Posição{x: 46, y: 87}
Impressão de Valores
- Para imprimir os valores dos campos da struct, utilizamos:
fmt.Println(pos.x, pos.y)
Structs sem Valores Especificados
- Ao criar uma struct sem especificar valores para os campos, os campos recebem o valor padrão (zero). Por exemplo,
{}
resulta em0
para ambos os camposx
ey
.
Validação de Valores ao Criar Literais
- Se tentarmos inicializar uma struct fornecendo poucos valores, Go retornará um erro. Mas, é possível inicializar apenas alguns campos especificando o nome, por exemplo:
Nesse caso,pos := Posição{y: 47}
x
receberá o valor padrão0
.
Ordem dos Campos
- A nomeação dos campos permite que não sejam fornecidos na ordem definida na struct. Podemos especificar qualquer campo a qualquer momento, por exemplo:
pos := Posição{y: 47, x: 21}
Próxima Aula
- Na próxima aula, será abordado o tema de ponteiros e como eles se relacionam com structs.
Esta aula foi gravada no arquivo
struct2.go
.
Video Transcript
Nós vamos continuar a aprender a criar struct na linguagem go.
Vamos falar mais aqui de como a gente pode definir os valores, os campos dessa struct,
posição.
Então, a gente aprendeu para poder criar uma struct.
Essa fala type, seguido do nome, a gente quiser, seguido de struct.
E entre as chaves nós definimos os campos, né?
Nome da variável, nome do campo e o tipo.
Nesse caso tem x, tipo inteiro, y, tipo inteiro.
Isso vai representar a posição em um plano cartesiano, posição x e y,
por exemplo, de um jogador num jogo de duas dimensões.
Então, a gente aprendeu sobre struct literal, isto é, a gente pode criar structs,
posição com valores iniciados dessa maneira aqui.
Por exemplo, se eu quiserem criar umas posições no x47 e flum87,
nós podemos dizer o nome das structs, seguido das chaves,
em uma lista separada por vírgula, tá?
Eu pus o espaço só pelo estilo, depois da vírgula.
E essa é uma estrutura literal, né?
E nós podemos armazenar esse cara dentro de uma variável.
Vamos dizer, vamos fazer da maneira mais longa.
A gente, como é que faz uma variável?
Var, vou chamar o nome da variável.
Posso?
Agora, o tipo desse cara, olha só, quando a gente faz ele de maneira longa,
em vez dos dois pontos igual, nós vamos dizer o tipo.
Nesse caso, é tipo posição, porque é o nosso novo tipo que a gente criou, tá?
Então, a gente criou uma variável chamada pos, que tem tipo posição.
E aí, a gente inicia o valor dessa variável usando uma estrutura literal aqui,
com valores para 46 e 87 para x e y, respectivamente.
Aí, a gente já aprendeu também que da UFMT, printLn,
se a gente quiser mostrar, por exemplo, a posição o valor x,
só falar o nome da variável, ponto, o nome do campo,
nesse caso x para o y, é a mesma coisa.
Nome da variável, ponto, y.
Vamos lá rodar e a gente espera que não termina,
apareça 46, seguido de 87 e uma nova linha.
Eu chamei esse arquivo de struct2.go, tá?
Como a gente esperava aqui, 46 e 87.
Agora, a gente também pode definir esse cara aqui,
vamos remover só esse, eu quero só dar o printLn do pos.
Nessa maneira aqui, ele vai mostrar tudo junto, tá?
Olha aqui o printLn, se eu pôr só a variável aqui,
armazena aqui, mantém essa estrutura,
vai aparecer tudo junto no printLn.
Então, eu quero demonstrar agora o que acontece se a gente definir
uma estrutura literal sem nenhum valor para os campos.
Isto é, esses caras vazios, as chaves vazias, com nada dentro.
Vamos ver o que acontece.
Então, a gente obteu 0 para x e 0 para y.
Então, se você definir uma estrutura literal
e não especificar nenhum valor para os campos da estrutura,
ele vai usar o valor 0 de cada campo.
Nesse caso, o valor 0 de x, que é o inteiro, é 0.
O valor 0 de y, que é o inteiro, é 0 também.
Por isso que a gente obteu 0, 0 como o ponto acordenado desse cara.
O que acontece se eu só definir, por exemplo, um valor?
O que vai acontecer nesse caso aqui?
Olha aqui.
Two few values, posição literal.
Então, ele nem deixou eu fazer isso aqui nesse caso.
Mas, se você quiser só definir, por exemplo, y mais não x,
é possível fazer isso, mas tem que mudar a maneira que a gente define
essa estrutura literal.
Então, a gente tem que especificar aqui que y vai ser 47.
Então, dessa maneira aqui, botando y, dois pontos,
seguida do valor desse campo, ele vai iniciar y para 47,
e todos os outros valores que não forem especificados terão o seu valor 0.
Nesse caso, x é um inteiro e tem valor 0, então, foi lá.
Uma maneira interessante, um detalhe de se você nomear essas valores aqui,
é que você não precisa pôr em ordem.
Se tu essa eu quiser depois definir o valor de x,
não precisa botar antes do y.
Nesses casos, poderia ser após o y, se eu nomear x, dois pontos,
com uma virgula separando ali.
Então, dessa maneira, eu defini primeiro y para c47,
e depois o x para saí 21.
Legal, então.
Então, para a gente terminar aqui na próxima aula,
a gente vai aprender sobre ponteiros para a cita.
Então, para 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: