Sobes.tech
Senior

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
    f := File{}
    r = f // File, Readerди ишке ашырат
    fmt.Println(r)
}

Бул жерде, File түрү, керек болгон колтамга ээ Read методу менен Reader интерфейсин ишке ашырат.