如何初始化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

10-06 14:53