go panic (runtime error: slice bounds out of range) 分析

如图,go程序出现panic

go panic (runtime error: slice bounds out of range) 分析

下面来看看这个导致panic的方法:

go panic (runtime error: slice bounds out of range) 分析

 

1)定义了一个nil的切片

            var job []string定义的是一个分配了却未初始化的对象,它的值是nil,上面的方法,如果

             if strings.Contains(subName, env) 这个条件一直不成立,返回的jobs就是nil

                              

             正确的写法: 

             jobs := []string{}

 

2)访问切片时,越界

           name[7 : len(name)-1]

           name这个对象其长度如果小于7,这个操作就会导致非法访问,“runtime error: slice bounds out of range”