Sobes.tech
Junior — Middle

Kas struktuur Go keeles saab rakendada liidest ja kuidas seda teha?

sobes.tech AI

Vastus AI-lt

Jah, Go keeles struktuur võib rakendada liidest. Selleks peab struktuur omama kõiki liidese deklareeritud meetodeid. Go keeles liidese rakendamine ei nõua selget deklaratsiooni — kui struktuur sisaldab vajalikke meetodeid, loetakse see automaatselt liidese rakendanuks.

Näide:

package main
import "fmt"

type Speaker interface {
    Speak() string
}

type Person struct {
    Name string
}

func (p Person) Speak() string {
    return "Tere, minu nimi on " + p.Name
}

func main() {
    var s Speaker = Person{Name: "Ivan"}
    fmt.Println(s.Speak())
}

Selles näites rakendab Person liidest Speaker, kuna tal on meetod Speak() vajaliku signatuuriga.