Sobes.tech
Senior

Go'da interfeyslar nima? Turlar interfeyslarni qanday amalga oshiradi?

sobes.tech AI

AIdan javob

Go tilida, interfeys — bu xulq-atvorni tasvirlovchi metodlar to'plami. Bir tur interfeysni amalga oshiradi, agar u interfeysda e'lon qilingan barcha metodlarni o'z ichiga olsa, interfeysni aniq ko'rsatmasdan.

Bu noaniq interfeys amalga oshirish deb ataladi. Bu bilan yanada moslashuvchan va kengaytiriladigan kod yozish mumkin.

Misol:

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) {
    // o'qish amalga oshirilishi
    return 0, nil
}

func main() {
    var r Reader
    f := File{}
    r = f // File, Readerni amalga oshiradi
    fmt.Println(r)
}

Bu yerda, File turi, kerakli imzoga ega Read metodiga ega bo'lib, Reader interfeysini amalga oshiradi.