У меня есть некоторые значения в списке в Go. Мне просто нужно быть в состоянии распечатать их, но каждый раз, когда я пытаюсь это сказать, test.FirstName не определено (тип * list.Element не имеет поля или метода FirstName).
Так как мне получить доступ к членам списка? Это последние несколько строк, которые доставляют мне неприятности.
package main
import (
"bufio"
"fmt"
"log"
"strconv"
"strings"
"os"
"container/list"
)
type Student struct {
FirstName string
LastName string
testScore int
homeworkScore int
}
func main() {
fmt.Println("What is the name of your file?\n")
var filename string
fmt.Scan(&filename)
file, err := os.Open(filename)
if err != nil {
log.Fatal(err)
}
scanner := bufio.NewScanner(file)
//var numLineCount int = 0
var gradeCount = 0
var student Student
var studentList list.List
var studentCount int = 1
for scanner.Scan() {
line := scanner.Text()
fields := strings.Fields(line)
student.FirstName = fields[0]
student.LastName = fields[1]
scanner.Scan()
line2 := scanner.Text()
sum := 0
gradeCount = 0
for _, field := range strings.Fields(line2) {
n, err := strconv.Atoi(field)
if err != nil {
log.Fatal(err)
}
gradeCount++
sum += n
}
student.testScore = sum/gradeCount
gradeCount = 0
scanner.Scan()
line3 := scanner.Text()
sum2 := 0
for _, field := range strings.Fields(line3) {
n, err := strconv.Atoi(field)
if err != nil {
log.Fatal(err)
}
gradeCount++
sum2 += n
}
student.homeworkScore = sum2/gradeCount
studentList.PushBack(studentCount)
studentCount++
fmt.Println("First:", student.FirstName, "Last:", student.LastName, "Test Avg:", student.testScore, "Homework Avg:", student.homeworkScore)
}
test:=studentList.Front()
fmt.Println(test.FirstName)
}
обновление: так что я понял, что не могу использовать test.FirstName в части println, просто Println (test) работает и печатает все. но мне все еще нужно иметь доступ к каждому элементу списка. Как я могу это сделать?