首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Go错误:非常数数组界

Go错误:非常数数组界
EN

Stack Overflow用户
提问于 2016-07-13 22:18:01
回答 1查看 49.4K关注 0票数 86

在用go编写的合并排序实现中,我试图计算数组的必要长度。看起来是这样的:

代码语言:javascript
运行
复制
func merge(array []int, start, middle, end int) {
  leftLength := middle - start + 1
  rightLength := end - middle
  var left [leftLength]int
  var right [rightLength]int
  //...
}

在运行go test时,我会收到这样的抱怨

代码语言:javascript
运行
复制
./mergesort.go:6: non-constant array bound leftLength
./mergesort.go:7: non-constant array bound rightLength

我假设go不喜欢用户用计算值实例化数组的长度。它只接受常量。我应该放弃而用一片代替吗?我希望一个片是一个动态数组,这意味着它要么是一个链接列表,要么是当它满的时候复制到一个更大的数组中。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-13 22:31:26

不能用在运行时计算的值实例化这样的数组。相反,使用make来初始化具有所需长度的片。会是这样的;

代码语言:javascript
运行
复制
left := make([]int, leftLength)
票数 162
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38362631

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档