Junior — Middle
Каква е разликата между интерфейса в езика 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
var f File
r = f // File автоматично реализира Reader
fmt.Println(r)
}