Junior — Middle
Как се указва на компилатора, че клас реализира определен интерфейс?
sobes.tech AI
Отговор от AI
В Go реализирането на интерфейси става неявно: клас (по-точно, тип) се счита за реализиращ интерфейс, ако съдържа всички методи, обявени в интерфейса.
Тоест, за да посочите на компилатора, че типът реализира интерфейс, е достатъчно да реализирате всички методи на интерфейса с необходимата сигнатура.
Пример:
package main
import "fmt"
type Speaker interface {
Speak() string
}
type Dog struct {}
func (d Dog) Speak() string {
return "Га!"
}
func main() {
var s Speaker = Dog{} // Dog реализира интерфейса Speaker
fmt.Println(s.Speak())
}
Тук Dog реализира метода Speak(), затова компилаторът счита, че Dog реализира интерфейса Speaker. Не е необходима явна декларация.