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