我不知道我在做什么,我决定尝试使用列表(docs) 这是我能想到的最多

  1. 为什么%v打印{0xf840024660 <nil> 0xf840023660 4}
  2. 为什么我没有收到与字符串混合的错误?
  3. 我该怎么强迫一个类型? (例如只有int,只有字符串等)

码:

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())
}

===============>>#1 票数:13 已采纳

首先,您可能不需要container/list 你可能正在寻找像切片和append()类的东西。 例如:

x := []int { 1, 2, 3 }
x = append(x, 4)
x = append(x, 5, 6)

container/list允许您混合类型的原因是它使用interface{}来保存值,并且任何类型都满足空接口。

===============>>#2 票数:2

要回答对Front()Back()的调用的第一个问题,这是因为您打印出不包含可打印值的Element结构 如果要打印Element.Value ,则必须执行(*ls2.Front()).Value 类似的原因也适用于为什么fmt.Println(ls)打印很奇怪。

  ask by translate from so

未解决问题?本站智能推荐: