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.
main.go
Pruébalo tú mismo →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.
main.go
Pruébalo tú mismo →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).