AnyCompiler

Structs

Un struct agrupa campos relacionados bajo un tipo con nombre — Go no tiene clases, así que un struct más sus funciones asociadas (cubierto en la siguiente lección) es la forma de modelar una "cosa" con datos.

package main

import "fmt"

type Person struct {
	Name string
	Age  int
}

func main() {
	alice := Person{Name: "Alice", Age: 30}
	fmt.Println(alice.Name, "is", alice.Age, "years old")
}
Output
Alice is 30 years old

Los structs son valores

Asignar o pasar un struct lo copia por defecto — rect.Width = 12 solo cambia la variable local rect en main, no alguna instancia compartida en otro lugar. Imprimir un struct directamente con Println muestra todos los valores de sus campos en orden.

package main

import "fmt"

type Rectangle struct {
	Width, Height float64
}

func main() {
	rect := Rectangle{Width: 10, Height: 5}
	rect.Width = 12
	fmt.Println(rect)
}
Output
{12 5}

Siguiente: methods — adjuntar comportamiento a un struct con receivers.

Practice exercise

Define un struct Book con los campos Title string y Pages int. Crea un book con Title "Dune" y Pages 412, luego imprime book.Title y book.Pages usando fmt.Println(book.Title, book.Pages).