Aula 19 – Tutorial Golang – Structs
Aula 19 – Tutorial Golang – Structs
Página principal do blog
Todas as aulas desse curso
Aula 18 Aula 20
Se gostarem do conteúdo dêem um joinha 👍 na página do Código Fluente no
Facebook
Esse é o link do código fluente no Pinterest
Meus links de afiliados:
Hostinger
Digital Ocean
One.com
Melhore seu NETWORKING
https://digitalinnovation.one/
Participe de comunidades de desenvolvedores:
Fiquem a vontade para me adicionar ao linkedin.
E também para me seguir no https://github.com/toticavalcanti.
Código final da aula:
https://github.com/toticavalcanti
Toti:
https://www.youtube.com/channel/UCUEtjLuDpcOvR3mIUr-viOA
Backing track / Play-along:
https://www.youtube.com/channel/UCT3TryVMqTqYBjf5g5WAHfA
Código Fluente
https://www.youtube.com/channel/UCgn-O-88XBAwdG9gUWkkb0w
Putz!
https://www.youtube.com/channel/UCZXop2-CECwyFYmHbhnAkAw
PIX para doações
Se quiser copiar o código do PIX:
00020126580014BR.GOV.BCB.PIX013643c5f950-535b-4658-b91f-1f1d135fe4105204000053039865802BR5925Antonio Cavalcante de Pau6009SAO PAULO61080540900062070503***6304946B
Aula 19 – Tutorial Golang – Structs
Structs
As estruturas em Go, são coleções tipadas de campos.
Elas são úteis para agrupar dados e formar registros.
A estrutura pessoa, nesse exemplo, possui os campos nome e idade.
type person struct {
name string
age int
}
A função newPerson() mostrada abaixo, constrói uma nova estrutura pessoa com os dados.
func newPerson(name string) *person {
p := person{name: "Toti"}
p.age = 52
return &p
}
Você pode retornar com segurança um ponteiro para a variável local, pois uma variável local sobreviverá ao escopo da função.
Você pode nomear os campos ao inicializar uma estrutura.
fmt.Println(person{"Ana", 20})
fmt.Println(person{name: "Alice", age: 30})
Os campos omitidos terão valor zero.
fmt.Println(person{name: "Fred"})
O prefixo & produz um ponteiro para a estrutura.
fmt.Println(&person{name: "Carlos", age: 40})
É idiomático encapsular a criação de uma nova estrutura em funções construtoras.
Então, vamos usar a função que criamos lá em cima, a newPerson().
fmt.Println(newPerson("Paulo"))
Acesse os campos de estrutura com um ponto.
s := person{name: "Nina", age: 50}
fmt.Println(s.name)
Você também pode usar pontos com ponteiros para a estrutura.
Os ponteiros são automaticamente desreferenciados.
sp := &s
fmt.Println(sp.age)
Estruturas são mutáveis.
sp.age = 51
fmt.Println(sp.age)
Código completo
package main
import "fmt"
type person struct {
name string
age int
}
func newPerson(name string) *person {
p := person{name: "Toti"}
p.age = 53
return &p
}
func main() {
fmt.Println(person{"Ana", 20})
fmt.Println(person{name: "Alice", age: 30})
fmt.Println(person{name: "Fred"})
fmt.Println(&person{name: "Carlos", age: 40})
fmt.Println(newPerson("Paulo"))
s := person{name: "Nina", age: 50}
fmt.Println(s.name)
sp := &s
fmt.Println(sp.age)
sp.age = 51
fmt.Println(sp.age)
}
E pra executar é só entrar na pasta onde tá o arquivo structs.go
go run structs.go