Sobes.tech
Junior — Middle

Come indicare al compilatore che una classe specifica implementa un'interfaccia determinata?

sobes.tech AI

Risposta dell'AI

In Go, l'implementazione di un'interfaccia avviene in modo implicito: se un tipo implementa tutti i metodi di un'interfaccia, viene automaticamente considerato come implementante di quell'interfaccia. Non è necessario indicarlo esplicitamente.

Esempio:

package main

import "fmt"

type Speaker interface {
    Speak() string
}

type Dog struct {}

func (d Dog) Speak() string {
    return "bau!"
}

func main() {
    var s Speaker
    d := Dog{}
    s = d // Dog implementa l'interfaccia Speaker
    fmt.Println(s.Speak())
}

Se si desidera verificare esplicitamente che un tipo implementa un'interfaccia, si può usare una verifica di compilazione:

var _ Speaker = (*Dog)(nil) // Il compilatore controllerà che *Dog implementa Speaker

In questo modo, in Go, le interfacce vengono implementate automaticamente quando i metodi necessari sono presenti.