Sobes.tech
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)
}