Accédez au champ de structure C avec le nom réservé dans Go.

problème

Je veux faire référence au champ nommé type, mais j'obtiens l'erreur suivante car il est réservé par Go.

package main

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

import "fmt"

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

Erreur


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

Solution

Vous pouvez y faire référence en ajoutant un trait de soulignement au nom du champ lors du référencement.

package main

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

import "fmt"

func main() {
  test := C.Struct{1}
  fmt.Println(test._type) //Pas de type_Voir par type.
}

production


1

référence

Recommended Posts

Accédez au champ de structure C avec le nom réservé dans Go.
Accéder à MongoDB en C
Chargez le module du même nom dans un autre emplacement
Lorsque le nom de la variable entre en conflit avec la commande Devaga dans pdb
Obtenez le nom d'hôte en Python
Accéder à l'API Twitter avec Python
Segfo avec 16 caractères en langage C
Mémorandum (Ajouter le nom uniquement aux personnes portant le même nom de famille dans la liste)
Remplacez le nom du répertoire et le nom du fichier dans le répertoire par une commande Linux.
Comportement lors du retour dans le bloc with
Implémenter une partie du processus en C ++
[Python] Récupère le nom de la variable avec str
Afficher Python 3 dans le navigateur avec MAMP
Tri sélect écrit en C
Communiquez avec les périphériques I2C sous Linux C
Rendre la bibliothèque créée par Eigen of C ++ disponible à partir de Python avec Boost.Numpy.
[Attention aux spoilers] Allez prédire une mariée divisée en cinq parts égales avec PyTorch