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.