Sobes.tech
Junior — Middle

Poate o structură în Go să implementeze o interfață și cum să o facă?

sobes.tech AI

Răspuns de la AI

Da, în Go, o structură poate implementa o interfață. Pentru aceasta, structura trebuie să aibă toate metodele declarate în interfață. În Go, implementarea unei interfețe nu necesită o declarație explicită — dacă structura conține metodele necesare, este considerată automat ca implementând interfața.

Exemplu:

package main
import "fmt"

type Speaker interface {
    Speak() string
}

type Person struct {
    Name string
}

func (p Person) Speak() string {
    return "Salut, numele meu este " + p.Name
}

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

În acest exemplu, Person implementează interfața Speaker deoarece are metoda Speak() cu semnătura necesară.