Heim > Backend-Entwicklung > Golang > Was ist das Äquivalent von Go zu den Void-Zeigern von C?

Was ist das Äquivalent von Go zu den Void-Zeigern von C?

Mary-Kate Olsen
Freigeben: 2024-12-16 16:14:11
Original
971 Leute haben es durchsucht

What is Go's Equivalent to C's Void Pointers?

Gos Äquivalent von Void-Zeigern in C

Um eine Datenstruktur zu erstellen, die jeden Typ in Go enthalten kann, sollten Sie die Verwendung der leeren Schnittstelle in Betracht ziehen.

Die leere Schnittstelle: Schnittstelle{}

Gemäß der Go-Programmiersprachenspezifikation „implementieren alle Typen die leere Schnittstelle.“ Das bedeutet, dass Sie eine Variable vom Typ Schnittstelle{} definieren und ihr einen Wert eines beliebigen Nicht-Schnittstellentyps zuweisen können.

var value interface{} = 10
Nach dem Login kopieren

Mit dieser Funktionalität können Sie Datenstrukturen erstellen, die Werte jeden Typs speichern können. ähnlich wie leere Zeiger in C. Sie könnten beispielsweise eine verknüpfte Liste definieren, in der jeder Knoten einen Wert eines beliebigen Typs enthalten kann:

type Node struct {
    Value interface{}
    Next  *Node
}
Nach dem Login kopieren

Aktualisierung: beliebig Alias

Ab Go 1.18 wurde der integrierte Alias ​​„any“ als Synonym für interface{} eingeführt. Es bietet einen prägnanteren und aussagekräftigeren Namen für die leere Schnittstelle.

var value any = 10
Nach dem Login kopieren

Fazit

Durch die Verwendung der leeren Schnittstelle oder ihres Alias ​​„any“ können Sie Go-Datenstrukturen erstellen, die Werte von speichern können Jeder Typ, der eine ähnliche Funktionalität wie Void-Zeiger in C erreicht.

Das obige ist der detaillierte Inhalt vonWas ist das Äquivalent von Go zu den Void-Zeigern von C?. 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