Étant donné que j'ai une structure C comme ci-dessous. Je suis capable de lire les valeurs d'union de données en utilisant des pointeurs dangereux, mais je suis incapable de déterminer comment je peux définir les données de valeur d'union?cgo comment régler une valeur C union
typedef struct val {
char *var1;
type type;
union {
char *binary_val;
char *bits_val;
bool bool_val;
double decimal64_val;
char *enum_val;
char *identityref_val;
char *instanceid_val;
int8_t int8_val;
int16_t int16_val;
int32_t int32_val;
int64_t int64_val;
char *string_val;
uint8_t uint8_val;
uint16_t uint16_val;
uint32_t uint32_val;
uint64_t uint64_val;
} data;
} val_t;
Existe-t-il un moyen de créer des méthodes auxiliaires dans C? Un exemple de réglage de string_val serait parfait? Je suis conscient que Go représente une union en tant que tableau d'octets avec le type le plus long définissant la longueur du tableau d'octets.
Tout comme vous pouvez lire les valeurs avec 'unsafe.Pointer', vous devriez aussi être capable de les écrire. – fuz