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 интерфейсин ишке ашырат.