Heim >Backend-Entwicklung >Golang >Was ist das Go-Äquivalent eines C-Void-Zeigers?

Was ist das Go-Äquivalent eines C-Void-Zeigers?

Linda Hamilton
Linda HamiltonOriginal
2024-12-21 09:40:11290Durchsuche

What is the Go Equivalent of a C Void Pointer?

Go-Äquivalent eines Void-Zeigers in C

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn