大家好,我是明哥。
由于某些不可抗力,之前该专栏的所有内容都被删除了。因此之后的一段时间内,我会重新发布这些文章,先给已经看过的关注者提个醒。
本文原文:http://golang.iswbm.com
Github:http://github.com/iswbm/GolangCodingTime
1. 整型
Go 语言中,整数类型可以再细分成10个类型,为了方便大家学习,我将这些类型整理成一张表格。
int 和 uint 的区别就在于一个 u
,有 u
说明是无符号,没有 u
代表有符号。
解释这个符号的区别
以 int8
和 uint8
举例,8 代表 8个bit,能表示的数值个数有 2^8 = 256。
uint8 是无符号,能表示的都是正数,0-255,刚好256个数。
int8 是有符号,既可以正数,也可以负数,那怎么办?对半分呗,-128-127,也刚好 256个数。
int8 int16 int32 int64 这几个类型的最后都有一个数值,这表明了它们能表示的数值个数是固定的。
而 int 并没有指定它的位数,说明它的大小,是可以变化的,那根据什么变化呢?
- 当你在32位的系统下,int 和 uint 都占用 4个字节,也就是32位。
- 若你在64位的系统下,int 和 uint 都占用 8个字节,也就是64位。
出于这个原因,在某些场景下,你应当避免使用 int 和 uint ,而使用更加精确的 int32 和 int64ÿ