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

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

Linda Hamilton
Freigeben: 2024-12-21 09:40:11
Original
263 Leute haben es durchsucht

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{}
Nach dem Login kopieren

Diese Variable kann dann jeden Wert eines beliebigen Typs enthalten:

value = 42
value = "Hello, world!"
value = struct{ name string }{name: "John"}
Nach dem Login kopieren

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
}
Nach dem Login kopieren

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"}
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage