http://play.golang.org/p/TE02wFCprM
当我尝试从列表中的结构中获取值时,出现错误 panic 。
fmt.Println(A_elem.Value.(Player).year) //3000
我所做的是创建一个列表并将结构添加到列表中。 当我从列表中检索元素时,它是接口(interface)类型。 但如果我打印出整个接口(interface)类型值,它仍然包含结构值。 所以我试图获取结构的一个值,但得到了 panic 错误。
这条线运行良好。
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 - 戈兰 : Get the value from list element,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20087233/