切片:Go 中的越界错误
执行以下代码时:
package main import "fmt" func main() { a := make([]int, 5) printSlice("a", a) b := make([]int, 0, 5) printSlice("b", b) c := b[1:] printSlice("c", c) } func printSlice(s string, x []int) { fmt.Printf("%s len=%d cap=%d %v\n", s, len(x), cap(x), x) }
你遇到“越界”错误。出现此错误的原因是创建 c 切片时的切片表达式无效。
在 Go 中,对数组或切片进行切片遵循以下规则:
c := b[1:2]这将创建下限为 1、上限为 2 的切片 c,由于 1 ,因此有效。 = 2
以上是为什么在 Go 中切片 `b[1:]` 会导致越界错误?的详细内容。更多信息请关注PHP中文网其他相关文章!