Sobes.tech
Junior — Middle

Kā norādīt kompilatoram, ka konkrēta klase īsteno noteiktu interfeisu?

sobes.tech AI

Atbilde no AI

Go valodā saskarnes īstenošana notiek netieši: ja tips īsteno visas saskarnes metodes, tas automātiski tiek uzskatīts par tās īstenotāju. Tam nav nepieciešams to skaidri norādīt.

Piemērs:

package main

import "fmt"

type Speaker interface {
    Speak() string
}

type Dog struct {}

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

func main() {
    var s Speaker
    d := Dog{}
    s = d // Dog īsteno Speaker saskarni
    fmt.Println(s.Speak())
}

Ja vēlaties skaidri pārbaudīt, vai tips īsteno saskarni, varat izmantot kompilatora pārbaudi:

var _ Speaker = (*Dog)(nil) // Kompilators pārbaudīs, vai *Dog īsteno Speaker

Tādējādi Go valodā saskarnes tiek īstenotas automātiski, ja ir pieejamas nepieciešamās metodes.