如何初始化KILO
类型的const
变量?
const KILO = math.Pow10(3)
因为我有一个错误const initializer math.Pow10(3) is not a constant
最佳答案
常量声明不能包含函数调用(有一些异常(exception),请参见下文),它们必须在运行时执行函数调用的编译时进行评估。
从Spec: Constants:报价
并引用Spec: Constant expressions:
请注意,在常量声明(例如unsafe.Sizeof()
)中可以调用一小套(内置)函数,但是通常您不能这样做。
所以就用
const Kilo = 1000 // Integer literal
或者
const Kilo = 1e3 // Floating-point literal
有关Go常量的广泛介绍,请阅读博客文章:Constants
如果由于某些原因您确实需要调用函数,则无法将其存储在常量中,则它必须是variable,例如:
var Kilo = math.Pow10(3)
另请参阅相关的Writing powers of 10 as constants compactly。