Sobes.tech
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)
}