В настоящее время я изучаю, как кодировать в Go, и я застрял с проблемой, которая возникает в строках 43 и 44 моего кода, я пытаюсь преобразовать один элемент "num" и "den" в число так что позже я смогу использовать его для вычисления, которое я хочу, но я получаю следующее сообщение:
panic: runtime error: index out of range
goroutine 1 [running]:
main.iterate_transfer(0x7ffecd96f050, 0x3, 0x7ffecd96f054, 0x3)
/home/mlg/Programming/project/107transfer_2019/107transfer.go:43 +0x3af
main.main()
/home/mlg/Programming/project/107transfer_2019/107transfer.go:28 +0xac
Я попытался напечатать len и содержимое строки "den", и оно содержит желаемое значение на правильная позиция, поэтому я не понимаю, почему я не могу получить к ней доступ ни к одному элементу
Я передал "7 * 2 * 6" в num_str и "2 * 4 * 3" в den_str
Мой код:
34 func iterate_transfer(num_str, den_str string) () {
35 result := 0.0
36
37 for x := 0.0; x <= 1.00; x += 0.001 {
38 num := strings.Split(num_str, "*")
39 den := strings.Split(den_str, "*")
40 power_num := len(num)
41 power_den := len(den)
42 for s := len(num); s > 0; s-- {
43 num_nb, _ := strconv.Atoi(num[s])
44 den_nb, _ := strconv.Atoi(den[s])
45 result += math.Pow(float64(num_nb), float64(power_den)) / math.Pow(float64(den_nb), float64(power_den))
46 power_num--
47 power_den--
48 }
49 fmt.Println(x, " -> ", result, "\n")
50 }
51 }
Заранее благодарим за помощь!