标签: 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是否不是有效地恒定的?如果没有,为什么?
size
答案 0 :(得分:4)
否,这在Go中是不可能的。 Go常量是编译时构造,而参数值仅在运行时存在。
Spec: Constant expressions:
常量表达式只能包含constant个操作数,并在编译时求值。
推荐阅读:The Go Blog: Constants