Menu
Coddy logo textTech

Gli struct come classi

Fa parte della sezione Programmazione orientata agli oggetti del percorso GO di Coddy. Lezione 6 di 107.

Le struct in Go hanno la stessa funzione delle classi in altri linguaggi. Raggruppano dati correlati in un unico tipo.

Definisci una struct con più tipi di campo

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

Crea un'istanza usando i nomi dei campi

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

Accedi ai campi e modificali

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

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

Le struct possono contenere altre struct

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

Le struct raggruppano campi correlati. Puoi accedere ai campi con l'operatore punto e annidare le struct all'interno di altre struct per creare modelli di dati complessi.

challenge icon

Sfida

Medio

Definisci una struct Profile con i seguenti campi:

  • Name: stringa
  • Email: stringa
  • Age: int
  • Role: stringa

Provalo tu

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 iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Programmazione orientata agli oggetti

Esercitati da solo: Compilatore Go online