gpt4 book ai didi

string - panic :尝试访问字符串元素时,Go中的索引超出范围

转载 作者:行者123 更新时间:2023-12-01 22:43:46 25 4
gpt4 key购买 nike

我目前正在学习如何在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 }

预先感谢您对我的帮助!

最佳答案

内置len方法,返回给定元素的大小。
由于索引从0开始,因此您需要:

  • 检查len是否大于0。
  • 减去-1以访问索引
  • 关于string - panic :尝试访问字符串元素时,Go中的索引超出范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60604012/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com