In Go wird das Konzept eines Void-Zeigers in C durch die leere Schnittstelle ersetzt, die als Schnittstelle{} bezeichnet wird. Diese Schnittstelle repräsentiert die Menge aller (Nicht-Schnittstellen-)Typen. Sie können damit jede Art von Wert speichern, ohne den spezifischen Typ angeben zu müssen.
Um die leere Schnittstelle zu verwenden, deklarieren Sie einfach eine Variable vom Typ Schnittstelle{}:
var value interface{}
Diese Variable kann dann jeden Wert eines beliebigen Typs enthalten:
value = 42 value = "Hello, world!" value = struct{ name string }{name: "John"}
Sie können über den Typ auf den in einer leeren Schnittstelle gespeicherten Wert zugreifen Behauptungen:
if x, ok := value.(int); ok { // x is an int } else if y, ok := value.(string); ok { // y is a string }
Update (27.09.2023):
Ab Go 1.18 wird der Typ „any“ als Alias für interface{} eingeführt. Es bietet die gleiche Funktionalität wie die leere Benutzeroberfläche, ist jedoch prägnanter und einfacher zu lesen.
var value any value = 42 value = "Hello, world!" value = struct{ name string }{name: "John"}
Das obige ist der detaillierte Inhalt vonWas ist das Go-Äquivalent eines C-Void-Zeigers?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!