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() με την απαιτούμενη υπογραφή.