Junior — Middle
Como é que o princípio de encapsulação de dados é implementado na linguagem Go?
sobes.tech IA
Resposta da IA
Em Go, a encapsulação é alcançada através da regra de visibilidade dos identificadores: se o nome de uma variável, função, método ou campo de estrutura começa com uma letra maiúscula, ela é exportada e acessível de outros pacotes; se começa com uma letra minúscula, só está acessível dentro do pacote atual.
Assim, para esconder dados, basta fazer os campos da estrutura começarem com uma letra minúscula, e implementar métodos com uma letra maiúscula (getters e setters) para acessá-los.
Exemplo:
package user
type User struct {
name string // campo privado
}
func NewUser(name string) *User {
return &User{name: name}
}
func (u *User) GetName() string {
return u.name
}
func (u *User) SetName(name string) {
u.name = name
}
}
Aqui, o campo name está oculto do acesso externo, e os métodos GetName e SetName fornecem acesso controlado a ele.