gpt4 book ai didi

高语 : Allocating Slice of Slices in functions results in index out of range

转载 作者:数据小太阳 更新时间:2023-10-29 03:17:49 26 4
gpt4 key购买 nike

我一直在用 Go 尝试一些东西,但遇到了一个我无法解决的问题。

package main

import "fmt"
import "strconv"

func writeHello(i int, ) {
fmt.Printf("hello, world "+strconv.Itoa(i)+"\n")
}

type SliceStruct struct {
data [][]int;
}

func (s SliceStruct) New() {
s.data=make([][]int,10);
}

func (s SliceStruct) AllocateSlice(i int) {
s.data[i]=make([]int,10);
}

func (s SliceStruct) setData(i int, j int, data int) {
s.data[i][j] = data;
}

func (s SliceStruct) getData(i int, j int) int {
return s.data[i][j]
}

func useSliceStruct(){
sliceStruct := SliceStruct{};
sliceStruct.New();
for i := 0; i < 10; i++ {
sliceStruct.AllocateSlice(i);
for j:=0; j<10; j++ {
sliceStruct.setData(i,j,i);
writeHello(sliceStruct.getData(i,j));
}
}
}

func dontUseSliceStruct(){
data:=make([][]int,10);
for i := 0; i < 10; i++ {
data[i]=make([]int,10);
for j:=0; j<10; j++ {
data[i][j] = i;
writeHello(data[i][j]);
}
}
}

func main() {
dontUseSliceStruct();
useSliceStruct();
}

当它到达函数 useSliceStruct 时,代码在第一次调用 AllocateSlice() 时失败并出现索引超出范围错误。

据我所知,这两种方法的代码做了相同的事情。那我错过了什么?

最佳答案

DOH,刚刚解决了。

我没有在函数声明中使用对结构的引用。

func (s SliceStruct)

应该是

func (s *SliceStruct)

关于高语 : Allocating Slice of Slices in functions results in index out of range,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19057495/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com