Junior — Middle
Go tilida interfeys va boshqa dasturlash tillaridagi interfeyslar o'rtasidagi farq nima?
sobes.tech AI
AIdan javob
Go tilida interfeyslar noaniq bo‘lib, ular shunday: tur interfeysni amalga oshirayotganligini aniq ko‘rsatishi shart emas. Agar tur interfeysning barcha metodlarini o‘z ichiga olsa, u avtomatik ravishda uning amalga oshirilgan deb hisoblanadi.
Bu ko‘plab boshqa tillardan farq qiladi, u yerda sinf yoki tur interfeysni amalga oshirayotganligini aniq e’lon qilish kerak.
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) {
// metodning amalga oshirilishi
return 0, nil
}
func main() {
var r Reader
var f File
r = f // File avtomatik ravishda Readerni amalga oshiradi
fmt.Println(r)
}