当前位置: 首页 > 面试题库 >

初始化const变量

姜俊友
2023-03-14
问题内容

如何KILO使用const类型初始化变量?

const KILO = math.Pow10(3)

因为我有错误

const initializer math.Pow10(3) is not a constant

问题答案:

常量声明不能包含函数调用(某些例外,请参见下文),它们必须在编译时进行评估,而函数调用是在运行时进行的。

引用规格:常量:

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

并引用Spec:常量表达式:

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

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

所以就用

const Kilo = 1000  // Integer literal

要么

const Kilo = 1e3   // Floating-point literal

有关Go常量的广泛介绍,请阅读博客文章:Constants

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

var Kilo = math.Pow10(3)


 类似资料:
  • 本文向大家介绍tensorflow 初始化未初始化的变量实例,包括了tensorflow 初始化未初始化的变量实例的使用技巧和注意事项,需要的朋友参考一下 今日在Stack Overflow上看到一个问如何只初始化未初始化的变量,有人提供了一个函数,特地粘贴过来共大家品鉴: 通过tf.global_variables()返回一个全局变量的列表global_vars, 然后以python列表解析式的

  • 问题内容: 我想知道为什么默认情况下C,C ++和Java中的确切静态变量初始化为零?为什么对局部变量不是这样? 问题答案: 为什么要对静态变量进行确定性初始化而对局部变量不进行初始化? 了解如何实现静态变量。 它们的内存在链接时分配,并且它们的初始值也在链接时提供。 没有运行时开销。 另一方面,用于局部变量的内存是在运行时分配的。堆栈必须增长。你不知道以前在那里。如果需要,可以清除该内存(将其清

  • 问题内容: 以下代码段使我在第1行出现了编译器错误。 据我了解,float用于十进制变量。 我是否遗漏了明显的东西,还是应该始终对小数变量初始化使用强制转换? 编辑:我知道’f’可以在末尾用于浮点变量,但这是强制性的吗? 问题答案: 除非您指定浮点文字只是s,否则它们将被视为s。(类似地,除非另有说明,否则整数文字是s。)将字母追加到数字上使其成为a : JLS具有用于文字值的全面输入规则。不,你

  • 我在这里看到过类似的问题,如果这看起来像是重复的,我很抱歉,但是类似问题的答案对我没有帮助。所以我有一个方法,它是类的一部分。这里是: 错误表明变量min可能尚未初始化。我不明白这怎么可能是真的。我觉得变量不可能不在for循环之外初始化。请帮忙。谢谢

  • 我有以下Java代码: 但是,当我运行它时,它会抛出以下错误: 我在do之前初始化了变量。while 循环,并在 try. 中设置值。捕获循环。似乎尚未设置该变量。抱歉,如果这是一个相当基本的问题,但我似乎无法弄清楚。