Junior — Middle
Was ist der Unterschied zwischen der Schnittstelle in der Programmiersprache Go und Schnittstellen in anderen Programmiersprachen?
sobes.tech KI
Antwort von AI
In der Programmiersprache Go unterscheiden sich Schnittstellen dadurch, dass sie implizit sind – der Typ muss nicht explizit angeben, dass er die Schnittstelle implementiert. Wenn ein Typ alle Methoden der Schnittstelle enthält, gilt er automatisch als deren Implementierung.
Dies unterscheidet sich von vielen anderen Sprachen, in denen explizit deklariert werden muss, dass eine Klasse oder ein Typ eine Schnittstelle implementiert.
Beispiel:
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) {
// Implementierung der Methode
return 0, nil
}
func main() {
var r Reader
var f File
r = f // File implementiert automatisch Reader
fmt.Println(r)
}