Olá, pessoal! Vamos dar continuidade ao nosso treinamento no canal Ralf Lima. Hoje vamos dar um passo gigantesco no curso e aprender sobre as Structs (Estruturas).
Até agora, trabalhamos com tipos de dados simples (como string e int) e coleções focadas em um único tipo de dado por vez (como vetores e slices). Uma Struct nos permite criar **o nosso próprio tipo de dado customizado**, agrupando diferentes informações dentro de um único molde. Podemos enxergar a struct como uma ficha de cadastro ou uma coleção de campos que definem as propriedades de um objeto real.
Uma dúvida muito comum de quem está dando os primeiros passos e já estudou outras linguagens é procurar pela palavra-chave class. **O Go não possui classes e não é uma linguagem orientada a objetos tradicional**. No entanto, as Structs cumprem com maestria o papel de modelar nossos dados. Veja o paralelo na tabela abaixo:
| Conceito no Go | Equivalente em Outras Linguagens | O que representa na prática? |
|---|---|---|
type Nome struct |
Classe (class) |
O molde, a estrutura ou a planta baixa que define como um objeto deve ser criado. |
Campos (nome, idade) |
Atributos ou Propriedades | As características específicas que aquele molde vai guardar na memória. |
Variável instanciada (pessoa1) |
Objeto ou Instância | O dado real e concreto preenchido no sistema a partir do molde original. |
A criação de uma struct acontece fora da nossa função principal main, utilizando a palavra-chave type seguida do nome da estrutura (geralmente com a primeira letra maiúscula) e da palavra struct. Dentro das chaves, listamos os campos e seus respectivos tipos de dados. Quando vamos instanciar esse molde dentro da função, nós preenchemos esses campos associando cada chave ao seu respectivo valor.
Veja abaixo como fica o código estruturado para criar o molde de uma pessoa e gerar dois cadastros independentes na memória:
package main
import "fmt"
// Struct (Modelo que serve como planta baixa)
type Pessoa struct {
nome string
idade int
}
func main() {
// 1º Objeto criado a partir do molde Pessoa
pessoa1 := Pessoa{
nome: "Ralf",
idade: 36,
}
// 2º Objeto criado a partir do molde Pessoa
pessoa2 := Pessoa{
nome: "Aline",
idade: 33,
}
// Exibir os objetos completos no terminal
fmt.Println(pessoa1)
fmt.Println(pessoa2)
}
Finalizamos os conteúdos desta aula sobre structs. Espero que tenham gostado de aprender a criar seus próprios tipos de dados customizados no Go. Em caso de dúvidas, comentem nos vídeos disponíveis no YouTube.