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() с необходимата сигнатура.