在Go中的恒定上下文中使用函数参数(参数)

时间:2019-01-18 12:54:12

标签: go constants

是否可以在恒定上下文中使用函数的自变量?
例如

func example(size int) {
  one := [size]int{}  // Error: non-constant array bound 'size' 
  const two = size    // Error: const initializer 'size' is not a constant
}

在这些情况下,size是否不是有效地恒定的?如果没有,为什么?

1 个答案:

答案 0 :(得分:4)

否,这在Go中是不可能的。 Go常量是编译时构造,而参数值仅在运行时存在。

Spec: Constant expressions:

  

常量表达式只能包含constant个操作数,并在编译时求值。

推荐阅读:The Go Blog: Constants