Я пытаюсь выполнить это упражнение, которое принимает в виде csv некоторого простого дополнительного вопроса / ответов и запрашивает ответ у пользователя, сохраняя при этом количество правильных ответов. Каждая строка csv выглядит примерно так: «5 + 5,10»
Однако я продолжаю получать эту ошибку после того, как задан последний вопрос, и не могу понять, где она происходит.
panic: runtime error: index out of range [0] with length 0
goroutine 1 [running]:
main.main()
~/main.go:23 +0x260
exit status 2
это мой код
package main
import (
"encoding/csv"
"fmt"
"io"
"os"
)
func check(e error) {
if e != nil {
panic(e)
}
}
func main() {
score := 0
file := "problems.csv"
questionSet := parseCsv(file)
for _, v := range questionSet {
question := v[0]
answer := v[1]
fmt.Println("What is", question)
ua := userAnswer()
if validateAnswer(ua, answer) {
score++
}
}
fmt.Println("Your score is", score)
}
func parseCsv(filepath string) [][]string {
var questions [][]string
in, err := os.Open(filepath)
check(err)
r := csv.NewReader(in)
for {
record, err := r.Read()
questions = append(questions, record)
if err == io.EOF {
break
}
check(err)
}
return questions
}
func userAnswer() string {
var answer string
fmt.Scan(&answer)
return answer
}
func validateAnswer(userAnswer string, answer string) bool {
return userAnswer == answer
}