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