Junior — Middle
Sind Schnittstellen ohne Methoden und eine Schnittstelle, die alle Typen zulässt, gleichwertig?
sobes.tech KI
Antwort von AI
In Go wird eine Schnittstelle, die keine Methoden enthält, als leere Schnittstelle interface{} bezeichnet. Es ist ein universeller Typ, der einen Wert beliebigen Typs enthalten kann.
Eine Schnittstelle ohne Methoden und eine Schnittstelle, die alle Typen zulässt, sind im Wesentlichen gleich, da die leere Schnittstelle keine Einschränkungen für die Typen auferlegt, die sie enthalten kann.
Beispiel:
var x interface{} // leere Schnittstelle
x = 42 // kann einen int zuweisen
x = "hallo" // kann einen string zuweisen
Daher ist die leere Schnittstelle eine Möglichkeit in Go, "jeden Typ" auszudrücken. Eine Schnittstelle ohne Methoden und eine Schnittstelle, die alle Typen zulässt, sind dasselbe.