无法访问结构的字段

我正在尝试使用可用的列表包在 Go 中实现结构的链接列表。这是下面的示例代码 -


package main


import (

    "container/list"

    "fmt"

)


type A struct{

    B int 

}


func main() {

    l := list.New()

    for i:=0;i<5;i++ {

        c := A{i}

        l.PushFront(c)

    }


    for e := l.Front(); e != nil; e = e.Next() {

        fmt.Println(e.Value)

    }


}

我得到的输出形式{0}与其他迭代相同。如何访问该字段以获取整数值?


长风秋雁
浏览 153回答 2
2回答

倚天杖

您必须将列表项转换回A. 你可以看到它在这里运行。package mainimport (&nbsp; &nbsp; "container/list"&nbsp; &nbsp; "fmt")type A struct {&nbsp; &nbsp; B int}func main() {&nbsp; &nbsp; l := list.New()&nbsp; &nbsp; for i := 0; i < 5; i++ {&nbsp; &nbsp; &nbsp; &nbsp; c := A{i}&nbsp; &nbsp; &nbsp; &nbsp; l.PushFront(c)&nbsp; &nbsp; }&nbsp; &nbsp; for e := l.Front(); e != nil; e = e.Next() {&nbsp; &nbsp; &nbsp; &nbsp; v := e.Value.(A)&nbsp; &nbsp; &nbsp; &nbsp; fmt.Println(v.B)&nbsp; &nbsp; }}

绝地无双

您可以通过 e.Value 访问结构,但无法访问结构值。你需要做 e.Value.B
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go