我使用Vector类型来存储字节数组(可变大小)
store := vector.New(200);
...
rbuf := make([]byte, size);
...
store.Push(rbuf);
一切正常,但是当我尝试检索值时,编译器告诉我需要使用类型断言。所以我添加了这些,然后尝试
for i := 0; i < store.Len(); i++ {
el := store.At(i).([]byte);
...
但是当我运行它时,它会以:
结束interface is nil, not []uint8
throw: interface conversion
我是否可以从Vector用来将其数据存储到我想要随后使用的实际[]字节数组的空元素接口中“转换”/转换?
更新(Go1):已在2011-10-18上删除了矢量包。
答案 0 :(得分:7)
这对我来说很好。你初步确定了矢量的前200个元素吗?如果你没有,他们可能会是零,这将是你错误的来源。
package main
import vector "container/vector"
import "fmt"
func main() {
vec := vector.New(0);
buf := make([]byte,10);
vec.Push(buf);
for i := 0; i < vec.Len(); i++ {
el := vec.At(i).([]byte);
fmt.Print(el,"\n");
}
}