整数类型有无符号和带符号两种。Go同时支持<code>int</code>和<code>uint</code>,这两种类型的长度相同,但具体长度取决于不同编译器的实现。~~当前的gcc和gccgo编译器在32位和64位平台上都使用32位来表示<code>int</code>和<code>uint</code>,但未来在64位平台上可能增加到64位~~。Go里面也有直接定义好位数的类型:<code>rune</code>, <code>int8</code>, <code>int16</code>, <code>int32</code>, <code>int64</code>和<code>byte</code>, <code>uint8</code>, <code>uint16</code>, <code>uint32</code>, <code>uint64</code>。其中<code>rune</code>是<code>int32</code>的别称,<code>byte</code>是<code>uint8</code>的别称。
<blockquote>需要注意的一点是,这些类型的变量之间不允许互相赋值或操作,不然会在编译时引起编译器报错。
如下的代码会产生错误
<blockquote>var a int8
var b int32
c:=a b
</blockquote>另外,尽管int的长度是32 bit, 但int 与 int32并不可以互用。
</blockquote>浮点数的类型有<code>float32</code>和<code>float64</code>两种(没有<code>float</code>类型),默认是<code>float64</code>。
这就是全部吗?No!Go还支持复数。它的默认类型是<code>complex128</code>(64位实数 64位虚数)。如果需要小一些的,也有<code>complex64</code>(32位实数 32位虚数)。复数的形式为<code>RE IMi</code>,其中<code>RE</code>是实数部分,<code>IM</code>是虚数部分,而最后的<code>i</code>是虚数单位。下面是一个使用复数的例子:
<pre><code class="lang-go hljs">var c complex64 = 5 5i //output: (5 5i) fmt.Printf("Value is: %v", c) </code></code></pre>