0
В настоящее время я играю с Go, задавался вопросом, каковы шаблоны для определения типов данных. Например, возьмите Bencode и представляйте его как структуру данных Go.Модели определения структуры Golang
data BEncode = BInt Integer
| BString L.ByteString
| BList [BEncode]
| BDict (Map String BEncode)
in C, we can do something like this
struct Bencoding;
typedef struct ListNode {
struct Bencoding *cargo;
struct ListNode *next;
} ListNode;
typedef struct DictNode {
char *key;
struct Bencoding *value;
struct DictNode *next;
} DictNode;
typedef struct Bencoding {
BType type;
union {
long long val; // used when type == BInt
ListNode *list; // used when type == BList
char *str; // used when type == BString
DictNode *dict;
} cargo; // data
} Bencoding;
, что это лучший способ, чтобы определить эти виды структур данных в Golang. Существуют ли какие-либо закономерности/хорошие практики с Голаном.
структуры являются единственным типом объекта в Go и они следуют те же самые правила, как и в C. Если вы знаете достаточно, чтобы задать вопрос, вы должны также знать достаточно, чтобы найти ответ. – evanmcdonnal