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