为了账号安全,请及时绑定邮箱和手机立即绑定

恐慌:运行时错误:切片边界超出范围

恐慌:运行时错误:切片边界超出范围

Go
UYOU 2021-08-23 16:29:28
我正在关注本教程:https : //gobyexample.com/slices我在中间:package mainimport "fmt"func main() {    s := make([]string, 3)    fmt.Println("emp:", s)    s[0] = "a"    s[1] = "b"    s[2] = "c"    fmt.Println("set:", s)    c := make([]string, len(s))    copy(c, s)    fmt.Println("copy:", c)    l := s[2:5]    fmt.Println("sl1:", l)}当我突然遇到这个错误时:alex@alex-K43U:~/golang$ go run hello.goemp: [  ]set: [a b c]copy: [a b c]panic: runtime error: slice bounds out of rangegoroutine 1 [running]:main.main()    /home/alex/golang/hello.go:19 +0x2bagoroutine 2 [syscall]:created by runtime.main    /usr/lib/go/src/pkg/runtime/proc.c:221exit status 2这是什么意思?教程有误吗?我能做些什么来修复它?
查看完整描述

2 回答

?
慕虎7371278

TA贡献1802条经验 获得超4个赞

您的代码从原始示例中省略了这些行:

s = append(s, "d")
s = append(s, "e", "f")

如果没有这些行,len(s) == 3。


查看完整回答
反对 回复 2021-08-23
?
守着一只汪

TA贡献1872条经验 获得超3个赞

你忘记了append增长的部分s

s = append(s, "d")
s = append(s, "e", "f")
fmt.Println("apd:", s)


查看完整回答
反对 回复 2021-08-23
  • 2 回答
  • 0 关注
  • 197 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信