//https://books.studygolang.com/The-Golang-Standard-Library-by-Example/chapter03/03.3.html package main import ( "container/list" "fmt" "reflect" ) func main() { fmt.Println("hello") // insertPushList() listAddrness() } func insertPushList() { // 创建一个新的链表,并向链表里面添加几个数字 l := list.New() fmt.Println(l) e4 := l.PushBack(4) fmt.Println("e4", e4.Value, &e4, e4) e1 := l.PushFront(1) fmt.Println("e1", e1.Value, &e1, e1) l.InsertBefore(3, e4) l.InsertAfter(2, e1) // 遍历链表并打印它包含的元素 for e := l.Front(); e != nil; e = e.Next() { fmt.Println("e", e.Value, e, reflect.TypeOf(e)) } var test list.List test.PushBack(99) // fmt.Println(&(test.Front().Value), test.Front()) } func listAddrness() { l := list.New() l.PushBack(1) l.PushBack(2) l.PushBack(3) l.PushBack(4) l.PushBack(5) l.PushBack(6) for e := l.Front(); e != nil; e = e.Next() { fmt.Println("e", e.Value, e, reflect.TypeOf(e)) } /* e 的内容 (结构体取地址) &{0xc0000744e0 0xc000074480 0xc000074480 1} &{next元素指针 prev元素指针 元素所在链表指针 1} */ }