Sobes.tech
Junior — Middle

¿Cómo se implementa el principio de encapsulación de datos en el lenguaje Go?

sobes.tech AI

Respuesta de la IA

En Go, la encapsulación se logra mediante la regla de visibilidad de los identificadores: si el nombre de una variable, función, método o campo de estructura comienza con una letra mayúscula, se exporta y está disponible desde otros paquetes; si comienza con una letra minúscula, solo está disponible dentro del paquete actual.

Por lo tanto, para ocultar datos, basta con hacer que los campos de la estructura tengan una letra minúscula, y para acceder a ellos, implementar métodos con una letra mayúscula (getters y setters).

Ejemplo:

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
}
}

Aquí, el campo name está oculto del acceso externo, y los métodos GetName y SetName proporcionan acceso controlado a él.