Junior — Middle
Ի՞նչ տարբերություն ունի Go լեզվի ինտերֆեյսը մյուս ծրագրավորման լեզուների ինտերֆեյսների համեմատ։
sobes.tech AI
Պատասխան AI-ից
Go լեզվում ինտերֆեյսները տարբեր են այն բանի համար, որ դրանք անանուն են՝ տիպը պետք չէ բացահայտորեն նշել, որ այն իրականացնում է ինտերֆեյսը: Եթե տիպը պարունակում է բոլոր մեթոդները, որոնք պահանջվում են ինտերֆեյսից, այն ավտոմատ կերպով համարվում է նրա իրականացմանը:
Սա տարբեր է շատ այլ լեզուներից, որտեղ անհրաժեշտ է բացահայտորեն հայտարարել, որ դասը կամ տիպը իրականացնում է ինտերֆեյսը:
Օրինակ՝
package main
import "fmt"
type Reader interface {
Read(p []byte) (n int, err error)
}
type File struct {}
func (f File) Read(p []byte) (n int, err error) {
// մեթոդի իրականացում
return 0, nil
}
func main() {
var r Reader
var f File
r = f // File-ը ավտոմատ կերպով իրականացնում է Reader-ին
fmt.Println(r)
}