Sobes.tech
Junior — Middle

Оё структура дар Go метавонад интерфейсро иҷро кунад ва чӣ гуна инро кардан мумкин аст?

sobes.tech AI

Ҷавоб аз AI

Бале, дар забони 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() бо имзои зарурӣ мебошад.