Volver a la página principal
lunes 21 octubre 2024
2

Cómo usar structs en Go

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.

¿Qué son los structs en Go?

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.

Definición de un struct

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
}

Uso de structs

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
}

Ejemplos de uso

Crear e inicializar un struct

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

Campos anónimos en structs

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

Referencia

Para más información sobre structs en Go, puedes visitar la documentación oficial de Go.

Etiquetas:
go
Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer