Junior — Middle
Golangдогу интерфейстер менен башка программалоо тилдериндеги интерфейстердин айырмасы эмнеде?
sobes.tech AI
AIден жооп
Go тилинде интерфейстер ишке ашыруу принципи боюнча ишке ашырылат. Бул деген, бир түр автоматтык түрдө интерфейсти ишке ашырат, эгер ал интерфейс талап кылган бардык методдорго ээ болсо, коддо аны ачык көрсөтүүнүн кажети жок (Java же C# сыяктуу тилдерде, анда интерфейстин ишке ашырылышын ачык көрсөтүү керек).
Бул ийкемдүү жана аз байланыштуу код жазууга мүмкүндүк берет, анткени түрлөр жана интерфейстер бири-бирине түздөн-түз көзкаранды эмес.
Мисал:
package main
import "fmt"
type Reader interface {
Read(p []byte) (n int, err error)
}
type MyReader struct{}
func (r MyReader) Read(p []byte) (n int, err error) {
// окуу ишке ашыруу
return 0, nil
}
func main() {
var r Reader = MyReader{} // көзкарандысыз интерфейс ишке ашыруу
fmt.Println(r)
}
Мындан тышкары, Go тилинде класстардын мурас алуу жок, интерфейстер полиморфизм жана композиция үчүн колдонулат, бул алардын көптөгөн башка тилдерден айырмалуулугун түзөт.