Greifen Sie auf das Feld C-Struktur mit dem in Go reservierten Namen zu.

Problem

Ich möchte auf das Feld mit dem Namen type verweisen, erhalte jedoch die folgende Fehlermeldung, da es von Go reserviert wird.

package main

/*
typedef struct {
	int type;
} Struct;
*/
import "C"

import "fmt"

func main() {
  test := C.Struct{1}
  fmt.Println(test.type)
}

Error


./Main.go:14:20: expected selector or type assertion, found 'type'

Lösung

Sie können darauf verweisen, indem Sie dem Feldnamen beim Verweisen einen Unterstrich hinzufügen.

package main

/*
typedef struct {
	int type;
} Struct;
*/
import "C"

import "fmt"

func main() {
  test := C.Struct{1}
  fmt.Println(test._type) //Nicht tippen_Siehe nach Typ.
}

Ausgabe


1

Referenz

Recommended Posts

Greifen Sie auf das Feld C-Struktur mit dem in Go reservierten Namen zu.
Greifen Sie auf MongoDB in C zu
Laden Sie das gleichnamige Modul an einer anderen Stelle
Wenn der Variablenname mit dem Devaga-Befehl in pdb in Konflikt steht
Holen Sie sich den Hostnamen in Python
Greifen Sie mit Python auf die Twitter-API zu
Segfo mit 16 Zeichen in C-Sprache
Memorandum (Namen nur Personen mit demselben Nachnamen in der Liste hinzufügen)
Ersetzen Sie den Verzeichnisnamen und den Dateinamen im Verzeichnis zusammen mit einem Linux-Befehl.
Verhalten bei der Rückkehr in den with-Block
Implementieren Sie einen Teil des Prozesses in C ++
[Python] Ruft den Variablennamen mit str ab
Zeigen Sie Python 3 im Browser mit MAMP an
Schriftliche Auswahlsortierung in C.
Kommunizieren Sie mit I2C-Geräten unter Linux C.
Stellen Sie die von Eigen of C ++ erstellte Bibliothek mit Boost.Numpy in Python zur Verfügung.
[Vorsicht vor Spoilern] Gehen Sie, um eine Braut vorherzusagen, die mit PyTorch in fünf gleiche Teile geteilt ist