常量

未匹配的标注

在 Go 语言中有 布尔常量rune 常量整数常量浮点数常量复数常量字符串常量。rune、 整数、浮点数和复数常量也统称为 数字常量

一个整型值可以由如下类型表示:

布尔值由预定义的常量 truefalse 表示。预定义的标识符 iota 表示一个整数常量。

通常,复合常事是常量表达式的一种形式,并将在本节中进行讨论。

数字常数表示任意精度的精确值,并且不会溢出。因此,没有常量表示 IEEE-754 的负零,无穷大和非数字值。

常量可以是有类型 或 无类型 的。文字常量, truefalseiota, 和某些常量表达式仅包含未类型化的常量操作数是未类型化的。

常量可以通过常量声明转换显式的指定类型, 在变量声明分配中用作隐式变量表达式。如果常量值不能作为相应类型的值表示,则会出现错误。

一个未显示定义类型的常量具有默认类型,这是在上下文中需要将常量隐式转换为的类型。例如在[短变量声明](golang.org/ref/ spec#Short_variable_declarations) i:= 0 就是没有显式类型的。无类型常量的默认类型会根据其字面类型被推断为为boolruneintfloat64 或是 complex128

实现限制:尽管数字常量在语言中具有无限精度,但是编译器可能会因实现的问题造成京都限制。而每个实现都必须满足:

  • 用至少256位表示整数常量
  • 用至少 256 位表示浮点常数、复数常数;用至少 16 位表示带符号的二进制指数
  • 如果无法精确表示整数常量,则报错
  • 如果由于溢出而无法表示浮点数或复数常量,则报错
  • 如果由于精度限制而无法表示浮点数或复数常数,则四舍五入到最接近的可表示常数

以上既适用于字面常量也适用于计算 常量表达式 的结果。

本文章首发在 LearnKu.com 网站上。

本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://learnku.com/docs/go-specificatio...

译文地址:https://learnku.com/docs/go-specificatio...

上一篇 下一篇
贡献者:3
讨论数量: 0
发起讨论 只看当前版本


暂无话题~