Boa noite Carlos, blz?
No início eu também fiquei um pouco confuso, ja que estou acostumado a criar os métodos dentro de classes no Java, mas dando uma pesquisada eu entendi dessa forma:
No Java, ao criarmos uma classe com seus atributos e métodos, eles ficarão acessíveis após você instanciar a classe, dependendo do encapsulamento.
Ja no Go Lang, não conseguimos criar métodos diretamente dentro do struct. Para dizer que aquele método pertence a uma struct, usamos a abordagem feita no vídeo.
Abaixo tem um exemplo que tirei de um site, talvez fique um pouco mais claro:
type Passaro struct {
}
func (p Passaro) bicar() {
fmt.Println("bicando")
}
func (p Passaro) voar() {
fmt.Println("voando")
}
func (p Passaro) comer() {
fmt.Println("comendo")
}
Dessa forma, quando instanciarmos uma classe pato, os métodos criados acima serão acessíveis:
pato := Passaro {}
pato.bicar()
pato.voar()
pato.comer()