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

Saída:

{Ana 20} {Alice 30} {Fred 0} &{Carlos 40} &{Toti 53} Nina 50 51 

É isso pessoal, fico por aqui.

Página principal do blog

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

Obrigado e bons estudos. ;)