【发布时间】:2013-11-20 04:16:14
【问题描述】:
http://play.golang.org/p/TE02wFCprM
当我尝试从列表中的结构中获取值时,我遇到了错误恐慌。
fmt.Println(A_elem.Value.(Player).year) //3000
我所做的是制作一个列表并将结构添加到列表中。 当我从列表中检索元素时,它是接口类型。 但是如果我打印出整个接口类型值,它仍然有结构值。 所以我试图获得一个结构值,但得到了恐慌错误。
这条线路运行良好。
fmt.Println(A_elem.Value) //&{dddd 3000}
代码在这里
package main
import (
"container/list"
"fmt"
)
func main() {
type Player struct {
name string
year int
}
A := new(Player)
A.name = "aaaa"
A.year = 1990
B := new(Player)
B.name = "eeee"
B.year = 2000
C := new(Player)
C.name = "dddd"
C.year = 3000
play := list.New()
play.PushBack(A)
play.PushBack(B)
play.PushBack(C)
A_elem := play.Back()
//A_elem.Value is type Player struct
fmt.Println(A_elem.Value) //&{dddd 3000}
fmt.Println(A_elem.Value.(Player).year) //3000
}
我想将结构保存在列表中,并能够从列表中保存的结构之一中检索特定值。
我该怎么做?
提前致谢。
【问题讨论】:
-
你需要一个链表,还是只需要一个类似列表的集合?
标签: pointers go structure panic