http://play.golang.org/p/TE02wFCprM
I am getting error panic when I try to get the value from a struct which is from list.
fmt.Println(A_elem.Value.(Player).year) //3000
What I did is make a list and add structures into the list. When I retrieve the element from the list, it is in interface type. But still if I print out the whole interface type value, it has structure values in it. So I tried to get one value of structure but getting the panic error.
This line is working well.
fmt.Println(A_elem.Value) //&{dddd 3000}
code is here
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
}
I want to save structures in the list and be able to retrieve the specific values from one of the structures that are saved in list.
How could I do it?
Thanks in advance.
The precise problem is that you tried to do a bad type assertion.
The list holds *Player
, but you tired to type assert that it is a plain Player
struct.
Playground link with this fixed.