Menu
Coddy logo textTech

Structs como clases

Parte de la sección Programación Orientada a Objetos del Journey de GO de Coddy. Lección 6 de 107.

Las estructuras en Go cumplen la misma función que las clases en otros lenguajes. Agrupan datos relacionados en un único tipo.

Define una estructura con varios tipos de campos

type Car struct {
    Brand string
    Model string
    Year  int
    Price float64
}

Crea una instancia usando nombres de campos

car := Car{
    Brand: "Toyota",
    Model: "Camry",
    Year:  2023,
    Price: 28000.50,
}

Accede a los campos y modifícalos

fmt.Println(car.Brand) // Toyota
fmt.Println(car.Year)  // 2023

car.Price = 27000.00   // Modifica un campo
fmt.Println(car.Price) // 27000

Las estructuras pueden contener otras estructuras

type Engine struct {
    Horsepower int
    FuelType   string
}

type Car struct {
    Brand  string
    Model  string
    Engine Engine
}

car := Car{
    Brand:  "Ford",
    Model:  "Mustang",
    Engine: Engine{Horsepower: 450, FuelType: "Gasoline"},
}
fmt.Println(car.Engine.Horsepower) // 450

Las estructuras agrupan fields relacionados. Accedes a los fields con el operador de punto y puedes anidar estructuras dentro de otras estructuras para crear modelos de datos complejos.

challenge icon

Desafío

Intermedio

Define una estructura Profile con los siguientes campos:

  • Name: cadena
  • Email: cadena
  • Age: entero
  • Role: cadena

Pruébalo tú mismo

package main

import "fmt"

func main() {
    var name, email, role string
    var age int
    fmt.Scan(&name, &email, &age, &role)

    p := Profile{
        Name:  name,
        Email: email,
        Age:   age,
        Role:  role,
    }

    fmt.Printf("Name: %s\n", p.Name)
    fmt.Printf("Email: %s\n", p.Email)
    fmt.Printf("Age: %d\n", p.Age)
    fmt.Printf("Role: %s\n", p.Role)
}
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Programación Orientada a Objetos

Practica por tu cuenta: Compilador de Go online