05.9.2 使用 container/list
在这一小节中将通过 conList.go
中的 Go 代码来阐明如何使用 container/list
包,下面分为三个部分介绍。
container/list
包实现了链表
conList.go
的第一部分包含如下的 Go 代码:
这里有个函数叫 printList()
,你可以传入一个 list.List
变量作为指针,然后输出其中所有的内容。这段 Go 代码展示了如何以从头到尾和从尾到头的两个方向输出 list.List
中的所有元素。通常,在你的程序中只需要使用其中的一种方式。你可以用Prev()
和 Next()
函数来反向或正向迭代链表中的元素。
conList.go
中的第二个代码段如下:
你可以用 list.PushBack()
函数在链表尾部插入对象,也可以使用 list.PushFront()
函数在链表的头部插入对象。这两个函数的返回值都是链表中新插入的对象。如果你想在指定的元素后面插入新的元素,那么可以使用 list.InsertAfter()
函数。类似的,你应该使用 list.InsertBefore()
在指定元素的前面插入新元素,如果指定的元素不存在链表就不会改变。list.PushBackList()
将一个链表的副本插入到另一个链表的后面。list.PushFrontList()
函数将一个链表的副本插入到另一个链表的前面。list.Remove()
函数从链表中删除一个指定的元素。
注意,使用 values.Init()
将会清空一个现有的链表或者初始化一个新的链表。
conList.go
的最后一部分代码如下:
这里使用 for
循环创建了一个新的链表,strconv.Itoa()
函数将整数值转化为一个字符串。
总之,container/list
包中函数的用法很好理解,结果也不出意外。
执行 conList.go
将会生成如下的输出:
Last updated