2016-06-18 4 views
1

Я пытаюсь реализовать связанный список struct в 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} и то же самое для других итераций. Как я могу получить доступ к полю, чтобы получить целочисленное значение?

ответ

1

Вы должны вернуть элемент списка обратно в A. Вы можете видеть, что он работает here.

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() { 
     v := e.Value.(A) 
     fmt.Println(v.B) 
    } 

} 
+0

Это была большая помощь для начинающих, таких как я. – ameyCU

-1

Вы получаете доступ к структуре через e.Value, но вы не получаете доступ к значению структур. Вам нужно будет сделать e.Value.B

+0

Я пробовал это, но он просто дает ошибку, поскольку значение undefined. – ameyCU