Sobes.tech
Junior — Middle

Kako naznačiti pretraživaču da određena klasa implementira određeni interfejs?

sobes.tech АИ

Одговор од АИ

U Go-u, implementacija interfejsa se vrši nejasno: ako tip implementira sve metode interfejsa, automatski se smatra da implementira taj interfejs. Nije potrebno to eksplicitno navesti.

Primer:

package main

import "fmt"

type Speaker interface {
    Speak() string
}

type Dog struct {}

func (d Dog) Speak() string {
    return "Gav!"
}

func main() {
    var s Speaker
    d := Dog{}
    s = d // Dog implementira interfejs Speaker
    fmt.Println(s.Speak())
}

Ako želite da eksplicitno proverite da li tip implementira interfejs, možete koristiti proveru kompilacije:

var _ Speaker = (*Dog)(nil) // Kompajler će proveriti da li *Dog implementira Speaker

Na ovaj način, u Go-u, interfejsi se automatski implementiraju kada postoje potrebne metode.