Sobes.tech
Junior — Middle

Una struttura in Go può implementare un'interfaccia e come farlo?

sobes.tech AI

Risposta dell'AI

Sì, in Go una struttura può implementare un'interfaccia. Per farlo, la struttura deve avere tutti i metodi dichiarati nell'interfaccia. In Go, l'implementazione di un'interfaccia non richiede una dichiarazione esplicita — se la struttura contiene i metodi necessari, viene automaticamente considerata come implementante l'interfaccia.

Esempio:

package main
import "fmt"

type Speaker interface {
    Speak() string
}

type Person struct {
    Name string
}

func (p Person) Speak() string {
    return "Ciao, mi chiamo " + p.Name
}

func main() {
    var s Speaker = Person{Name: "Ivan"}
    fmt.Println(s.Speak())
}

In questo esempio, Person implementa l'interfaccia Speaker perché ha il metodo Speak() con la firma richiesta.