gpt4 book ai didi

pointers - 戈朗 : Get the value from list element

转载 作者:IT王子 更新时间:2023-10-29 02:06:13 25 4
gpt4 key购买 nike

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
}

我想将结构保存在列表中,并能够从保存在列表中的结构之一中检索特定值。

我该怎么做?

提前致谢。

最佳答案

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

该列表包含 *Player,但您厌倦了键入断言它是一个普通的 Player 结构。

Playground link有了这个固定。

关于pointers - 戈朗 : Get the value from list element,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20087233/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com