我有这么一段代码:fmt.Scanf("%dx%d", &sizex, &sizey) var grid [sizex][sizey]int我目前收到“非常量数组绑定 sizex”错误。如何创建具有用户选择的维度的数组?当然,我不想以后修改它的大小,但我显然不能使用常量。
1 回答
拉风的咖菲猫
TA贡献1995条经验 获得超2个赞
我认为你正在寻找;
grid := make([][]int, sizex)
for i := 0; i < len(grid) i++ {
grid[i] = make([]int, sizey)
}
这有点像new在 C++ 诗歌中使用关键字“在堆栈上”分配。要在您的问题中使用声明,大小参数必须是编译时已知的值。
在上面的例子中make只适用于第一维,给了我一个数组[]int数组,但是,这些数组都没有被初始化,所以我必须遍历网格并使用 调用 makesizey来分配第二个维度。
- 1 回答
- 0 关注
- 200 浏览
添加回答
举报
0/150
提交
取消