Sobes.tech
Junior — Middle

Ինչ է տարբերությունը Go լեզվի ինտերֆեյսում և ինչ հատկանիշներ պետք է իմանաք?

sobes.tech AI

Պատասխան AI-ից

Go լեզվում, ինտերֆեյսը մեթոդների հավաքածու է, որը պետք է իրականացնել մի տեսակ, որպեսզի այն համարվի այդ ինտերֆեյսին համապատասխան։ Go-ի ինտերֆեյսների առանձնահատկությունները՝

  • Անհայտ իրականացում: տեսակն համարվում է, որ իրականացնում է ինտերֆեյսը, եթե ունի բոլոր մեթոդները, առանց բացահայտ հայտարարելու։
  • Ինտերֆեյսները նկարագրում են վարքագիծը, ոչ թե տվյալների կառուցվածքը։
  • Դատարկ ինտերֆեյս (interface{}) — մեթոդներ չունեցող ինտերֆեյս, որը կարող է պարունակել ցանկացած տեսակի արժեք։
  • Ինտերֆեյսները կարող են լինել ներսից ներս, միացնելով մի քանի ինտերֆեյսների մեթոդները։

Օրինակ՝

package main
import "fmt"

type Reader interface {
    Read(p []byte) (n int, err error)
}

type MyReader struct {}

func (r MyReader) Read(p []byte) (n int, err error) {
    // կարդալու իրականացում
    return 0, nil
}

func main() {
    var r Reader = MyReader{} // MyReader անուղղակիորեն իրականացնում է Reader
    fmt.Println(r)
}