我不知道我在做什么,我决定尝试使用list (docs)。这是我能想到的最多
{0xf840024660 <nil> 0xf840023660 4}
?代码:
package main
import "fmt"
import "container/list"
func main() {
ls := list.New()
ls.PushBack("a")
ls.PushBack(4)
ls.PushBack("5")
fmt.Println(ls)
ls2 := list.New()
ls2.PushBack(4)
ls2.PushBack(8)
fmt.Printf("%v\naaa\n", *ls2.Front())
fmt.Println(*ls2.Back())
}
答案 0 :(得分:12)
首先,你可能不想要container/list
。你可能正在寻找切片和append()
之类的东西。例如:
x := []int { 1, 2, 3 }
x = append(x, 4)
x = append(x, 5, 6)
container/list
允许您混合类型的原因是它使用interface{}
来保存值,并且任何类型都满足空接口。
答案 1 :(得分:2)
要回答您对Front()
和Back()
来电的第一个问题,原因是您正在打印出不包含可打印值的Element
struct。如果您要打印Element.Value
,则必须执行(*ls2.Front()).Value
。类似的原因也适用于fmt.Println(ls)
打印怪异的原因。