4.8. 常量

虽然在Go中整数(integer)占用了大量的空间,但是常量类型的整数并没有占用很多空间。 这里没有像0LL 或 0x0UL的常量,取而代之的是使用整数常量作为大型高精度的值。常量只有 在最终被赋值给一个变量的时候才可以会出现溢出的情况:

          const hardEight = (1 << 100) >> 97  // legal,合法

具体的语法细节比较琐屑,下面是一些简单的例子:

          var a uint64 = 0  // a has type uint64, value 0
          a := uint64(0)    // equivalent; uses a "conversion"
          i := 0x1234       // i gets default type: int
          var j int = 1e6   // legal - 1000000 is representable in an int
          x := 1.5          // a float
          i3div2 := 3/2     // integer division - result is 1
          f3div2 := 3./2\.   // floating point division - result is 1.5

(强制?)转换只适用于几种简单的情况:转换整数(int)到去其他的精度和大小,整数(int)与 浮点数(float)的转换, 还有其他一些简单情形。在Go语言中,系统不会对两种不同类型变量作 任何隐式的类型转换。此外,由常数初始化的变量需要指定确定的类型和大小。