Sobes.tech
Junior — Middle

Μπορεί μια δομή στο Go να υλοποιήσει μια διεπαφή και πώς να το κάνετε;

sobes.tech AI

Απάντηση από AI

Ναι, στη γλώσσα Go μια δομή μπορεί να υλοποιήσει μια διεπαφή. Για αυτό, η δομή πρέπει να έχει όλες τις μεθόδους που δηλώνονται στη διεπαφή. Στη Go, η υλοποίηση μιας διεπαφής δεν απαιτεί ρητή δήλωση — αν η δομή περιέχει τις απαραίτητες μεθόδους, θεωρείται αυτόματα ότι υλοποιεί τη διεπαφή.

Παράδειγμα:

package main
import "fmt"

type Speaker interface {
    Speak() string
}

type Person struct {
    Name string
}

func (p Person) Speak() string {
    return "Γειά σου, το όνομά μου είναι " + p.Name
}

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

Σε αυτό το παράδειγμα, το Person υλοποιεί τη διεπαφή Speaker επειδή έχει τη μέθοδο Speak() με την απαιτούμενη υπογραφή.