Sobes.tech
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
    d := Dog{}
    s = d // Dog իրականացնում է Speaker ինտերֆեյսը
    fmt.Println(s.Speak())
}

Եթե ցանկանում եք հստակ ստուգել, թե արդյոք մի տեսակ իրականացնում է ինտերֆեյս, կարող եք օգտագործել կոմպիլյատորային ստուգում:

var _ Speaker = (*Dog)(nil) // Կոմպիլյատորը կստուգի, արդյոք *Dog իրականացնում է Speaker-ին

Այսպիսով, Go-ում ինտերֆեյսները ավտոմատ կերպով իրականացնում են, երբ անհրաժեշտ մեթոդները առկա են։