初始化const变量

Ken*_*tov 5 const go

如何KILOconst类型初始化变量?

const KILO = math.Pow10(3)
Run Code Online (Sandbox Code Playgroud)

因为我有一个错误

const initializer math.Pow10(3) is not a constant
Run Code Online (Sandbox Code Playgroud)

icz*_*cza 8

常量声明不能包含函数调用(有一些例外,见下文),它们必须在编译时计算,同时在运行时执行函数调用.

引用规范:常量:

常量值由符文,整数,浮点,虚数字符串文字表示,表示常量的标识符,常量表达式,结果为常量的转换或某些内置的结果值函数如unsafe.Sizeof应用于任何值,caplen应用于某些表达式,realimag应用于complex应用于数字常量的常量和复数.

引用Spec:Constant表达式:

常量表达式可能只包含常量操作数,并在编译时进行求值.

请注意,有一小组(内置)函数可以在常量声明中调用,例如unsafe.Sizeof(),但通常你不能这样做.

所以只需使用

const Kilo = 1000  // Integer literal
Run Code Online (Sandbox Code Playgroud)

要么

const Kilo = 1e3   // Floating-point literal
Run Code Online (Sandbox Code Playgroud)

有关Go常量的详细介绍,请阅读博客文章:常量

如果由于某种原因你需要调用一个函数,你不能将它存储在一个常量中,它必须是一个变量,例如:

var Kilo = math.Pow10(3)
Run Code Online (Sandbox Code Playgroud)

另请参阅相关的写入功率10作为常量紧凑.