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)
}