Los *structs* en Go son tipos de datos personalizados que permiten agrupar varios campos bajo una misma estructura. Son utilizados para organizar datos de manera eficiente, similar a las clases en otros lenguajes de programación, pero sin métodos embebidos.
En Go, un struct es una colección de campos que pueden tener diferentes tipos de datos. Se utiliza para definir estructuras más complejas, permitiendo encapsular datos de forma ordenada y lógica. Los structs no soportan herencia como en otros lenguajes orientados a objetos, pero son fundamentales para trabajar con datos estructurados.
Para definir un struct en Go, se usa la palabra clave type
seguida del nombre del struct y luego la palabra clave struct
. Dentro de las llaves se definen los campos con sus respectivos tipos.
type Persona struct {
Nombre string
Edad int
}
Una vez definido un struct, se puede crear una instancia e inicializar sus valores. Puedes acceder y modificar los campos de un struct usando la notación de punto (.
).
func main() {
p := Persona{
Nombre: "Juan",
Edad: 30,
}
fmt.Println(p.Nombre) // Imprime: Juan
p.Edad = 31
fmt.Println(p.Edad) // Imprime: 31
}
type Libro struct {
Titulo string
Autor string
Paginas int
}
func main() {
libro := Libro{
Titulo: "El Quijote",
Autor: "Miguel de Cervantes",
Paginas: 500,
}
fmt.Println(libro)
}
Go permite utilizar *campos anónimos*, lo que significa que puedes usar tipos de datos como campos de un struct sin asignarles un nombre explícito.
type Coordenadas struct {
int
int
}
func main() {
c := Coordenadas{10, 20}
fmt.Println(c.int) // Imprime: 20 (segundo campo)
}
Para más información sobre structs en Go, puedes visitar la documentación oficial de Go.
Jorge García
Fullstack developer