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
}
我想将结构保存在列表中,并能够从保存在列表中的结构之一中检索特定值。
我怎么能做到?
收到一只叮咚
相关分类