Go 切片索引超出范围,但有一个空间可用
我正在试图弄清楚切片大小调整是如何工作的,我有以下示例:Go 切片索引超出范围,但有一个空间可用,go,slice,Go,Slice,我正在试图弄清楚切片大小调整是如何工作的,我有以下示例: package main import ( "fmt" ) func main() { s := []byte{'A', 'W', 'T', 'Q', 'X'} b := s[2:4] fmt.Println(s, len(s), cap(s)) fmt.Println(string(b), len(b), cap(b)) b[1] = 'H' b[2] = 'V' f
package main
import (
"fmt"
)
func main() {
s := []byte{'A', 'W', 'T', 'Q', 'X'}
b := s[2:4]
fmt.Println(s, len(s), cap(s))
fmt.Println(string(b), len(b), cap(b))
b[1] = 'H'
b[2] = 'V'
fmt.Println(string(b))
}
编译器抱怨:
panic: runtime error: index out of range
b
具有3
的容量,为什么我不能分配like
b[2] = 'V'
索引仅在
0..len(b)-1
范围内有效。引述:
元素可以通过整数索引0
到len(s)-1
进行寻址
超出长度(但在容量内)的元素通过索引不可用。只有当您选择包含这些元素(但在容量范围内)的切片时,才能访问这些元素。索引仅在
0..len(b)-1
范围内有效。引述:
元素可以通过整数索引0
到len(s)-1
进行寻址
超出长度(但在容量内)的元素通过索引不可用。只有当您选择包含这些元素(但在容量范围内)的切片时,才能访问这些元素。索引仅在
0..len(b)-1
范围内有效。引述:
元素可以通过整数索引0
到len(s)-1
进行寻址
超出长度(但在容量内)的元素通过索引不可用。只有当您选择包含这些元素(但在容量范围内)的切片时,才能访问这些元素。索引仅在
0..len(b)-1
范围内有效。引述:
元素可以通过整数索引0
到len(s)-1
进行寻址
超出长度(但在容量内)的元素通过索引不可用。只有在您允许切片包含这些元素(但在容量范围内)的情况下,才能访问这些元素。而且顺便说一句,不是编译器抱怨:是运行时(
panic:runtime error:…
)对于所有这些类型的问题,真正有帮助的是阅读整个Go Tour.golang.org并阅读博客。顺便说一句,不是编译器抱怨:是运行时(panic:runtime error:…
)对于所有这些类型的问题,真正有帮助的是阅读整个Go Tour.golang.org并阅读博客。顺便说一句,不是编译器抱怨:是运行时(panic:runtime error:…
)对于所有这些类型的问题,真正有帮助的是访问整个Go Tour.golang.org并阅读博客。顺便说一句,不是编译器抱怨:是运行时(panic:runtime error:…
)。对于所有这些类型的问题,真正有帮助的是访问整个Go Tour.golang.org并阅读博客。