Junior — Middle
Da li struktura u Go može implementirati interfejs i kako to uraditi?
sobes.tech АИ
Одговор од АИ
Да, у језику 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() са потребном сигнатуром.