Go中的递归链表类型别名

时间:2017-11-28 02:38:11

标签: c go data-structures struct linked-list

我正在尝试将一些C代码转换为Go,我想知道是否有一个Go等效于以下链表类型:

typedef struct TOKENLIST {
  token item;
  struct TOKENLIST *next;
} token_list_elt, *token_list;

到目前为止,似乎我必须像这样单独创建两种类型:

type token_list struct {
    item token
    next *token_list
}
type token_list_elt struct {
    item token
    next *token_list_elt
}

对于这个例子来说,这不是什么大问题,但是我需要翻译很多链接列表类型,其中一些有很多别名和/或结构域。

1 个答案:

答案 0 :(得分:1)

但为什么不这样用呢:

type linkedList struct {
    item token
    next *linkedList
}

...

tokenList := linkedList{}
tokenListElt := linkedList{}

不同的结构类型是如此重要吗?