为了账号安全,请及时绑定邮箱和手机立即绑定

Golang:从列表元素中获取值

Golang:从列表元素中获取值

Go
SMILET 2021-06-30 17:00:24
http://play.golang.org/p/TE02wFCprM当我尝试从列表中的结构中获取值时出现错误恐慌。   fmt.Println(A_elem.Value.(Player).year) //3000我所做的是制作一个列表并将结构添加到列表中。当我从列表中检索元素时,它是接口类型的。但是如果我打印出整个接口类型值,它仍然包含结构值。所以我试图获得一个结构值,但得到了恐慌错误。这条线运作良好。   fmt.Println(A_elem.Value)                    //&{dddd 3000}代码在这里package mainimport (  "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}我想将结构保存在列表中,并能够从保存在列表中的结构之一中检索特定值。我怎么能做到?
查看完整描述

1 回答

?
收到一只叮咚

TA贡献1821条经验 获得超4个赞

确切的问题是你试图做一个错误的类型断言。

该列表包含*Player,但您已经厌倦了输入 assert 它是一个普通Player结构体。

与此固定的游乐场链接


查看完整回答
反对 回复 2021-07-12
  • 1 回答
  • 0 关注
  • 588 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信