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-ում ինտերֆեյսները ավտոմատ կերպով իրականացնում են, երբ անհրաժեշտ մեթոդները առկա են։