Junior — Middle
Go tilida interfeys qanday farq qiladi va uning qanday xususiyatlarini bilish kerak?
sobes.tech AI
AIdan javob
Go tilida interfeys — bu metodlar to'plami bo'lib, bu metodlarni amalga oshirgan tur bu interfeysga mos keladi. Go'da interfeyslarning xususiyatlari:
- Nazoratsiz amalga oshirish: tur, agar u interfeysdagi barcha metodlarga ega bo'lsa, uni aniq ko'rsatmasdan amalga oshiradi.
- Interfeyslar ma'lumotlar tuzilmasini emas, xatti-harakatlarni tasvirlaydi.
- Bo'sh interfeys (
interface{}) — metodlar bo'lmagan interfeys bo'lib, har qanday turdagi qiymatni saqlay oladi. - Interfeyslar ichma-ich bo'lishi mumkin, bir nechta interfeys metodlarini birlashtirib.
Misol:
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) {
// o'qish amalga oshirilishi
return 0, nil
}
func main() {
var r Reader = MyReader{} // MyReader, Reader'ni nazorat qilmay amalga oshiradi
fmt.Println(r)
}