Menu
Coddy logo textTech

Introduzione all’OOP in Go

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

Go non ha classi, ma realizza la programmazione orientata agli oggetti tramite struct e metodi. Una struct raggruppa dati correlati e i metodi definiscono il comportamento associato a quella struct.

Definisci una struct per contenere i dati

type Dog struct {
    Name string
    Age  int
}

Aggiungi un metodo alla struct

func (d Dog) Bark() string {
    return d.Name + " says Woof!"
}

Crea un'istanza e usala

package main

import "fmt"

type Dog struct {
    Name string
    Age  int
}

func (d Dog) Bark() string {
    return d.Name + " says Woof!"
}

func main() {
    myDog := Dog{Name: "Buddy", Age: 3}
    fmt.Println(myDog.Bark()) // Output: Buddy says Woof!
    fmt.Println(myDog.Age)    // Output: 3
}

In Go, la parte (d Dog) prima del nome del metodo si chiama receiver. Collega il metodo alla struct Dog, in modo simile a come i metodi appartengono alle classi in altri linguaggi.

challenge icon

Sfida

Facile

Crea una struct Cat con un metodo per esercitarti con l'approccio di Go alla programmazione orientata agli oggetti:

  • Definisci una struct Cat con i campi Name (string) e Age (int)
  • Aggiungi un metodo Speak che restituisca il nome del gatto seguito da " says Meow!"

Provalo tu

package main

import "fmt"

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

    cat := Cat{Name: name, Age: age}

    fmt.Printf("Name: %s\n", cat.Name)
    fmt.Printf("Age: %d\n", cat.Age)
    fmt.Println(cat.Speak())
}
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