Embebido de structs en Go
Embeber promueve los campos y métodos del tipo interno hacia el externo.
type Base struct {
ID int
Created string
}
func (b Base) Age() string { return "since " + b.Created }
type Tour struct {
Base
Slug string
Steps int
}
func (t Tour) Describe() string {
return fmt.Sprintf("%s #%d %s, %d steps",
t.Slug, t.ID, t.Age(), t.Steps)
}
func build() string {
tour := Tour{Base: Base{ID: 3, Created: "2026-07"}, Slug: "traits",
Steps: 19}
return tour.Describe()
}
Cómo funciona
- El nombre del tipo embebido es el nombre del campo.
- Los métodos promovidos hacen que el tipo externo satisfaga las mismas interfaces.
- Es composición, no herencia: sin sobreescritura, solo sombreado.
Palabras clave y builtins usados aquí
funcintreturnstringstructtype
El intento, en números
- Líneas
- 23
- Caracteres a escribir
- 395
- Tokens
- 110
- Ritmo de tres estrellas
- 95 tpm
Al ritmo de tres estrellas de 95 tokens por minuto, este intento toma unos 69 segundos.
Paso 3 de 3 en Structs y métodos; paso 3 de 19 en Interfaces y genéricos.