3.15
1、int8,int16,int32,int64有什么区别
int后面的数字代表这个数据类型占据的空间,8就占据1个在字节,相当于数据类型是(Byte),16占据2个字节(short),32占据4个字节(int),64占据8个字节(long)
在 Go 语言中,int8
、int16
、int32
和 int64
是整数类型,这些类型的数值范围如下:
int8
:有符号 8 位整数,范围为-128
到127
。int16
:有符号 16 位整数,范围为-32768
到32767
。int32
:有符号 32 位整数,范围为-2147483648
到2147483647
。int64
:有符号 64 位整数,范围为-9223372036854775808
到9223372036854775807(小于unit64,63位,有符号)
。
需要注意的是,这些类型的大小和范围在不同的计算机体系结构和编译器中可能会有所不同。因此,编写可移植的代码时,需要根据特定的情况进行相应的调整。
Go 语言还提供了对应的无符号整数类型
uint8:
0
到255
uint16:
0
到65535
uint32
:0
到4294967295
uint64
,0
到18446744073709551615(大,64位,无符号)
拓展:
存储:信息的存储单位有位,字节,和字
位:bit
字节:每8位(bit)一个Byte,计算机中存储,和处理至少需要一个字节
字:1个字2个字节,汉字的存储单位是字
编码:
ASCIIS码: 1个英文字母(不分大小写,含asclls码)= 1个字节的空间
1个中文汉字 = 2个字节
UTF-8编码:1个英文字符(含标点) = 1个字节
1个中文(含繁体,标点) = 3个字节
Unicode编码:1个英文字符 = 2个字节
英文标点 = 2个字节
1个中文(含繁体,标点) = 2个字节
big.Int
类型的整数不能直接与 uint64
类型的整数进行计算和操作,big1
是一个 big.Int
类型的整数,可以表示比 int64
类型更大的整数。big2
是 big1
转换为 uint64
类型的整数。如果需要使用 big1
进行超出 int64
类型范围的计算,就需要将其转换为 uint64
类型的整数。
2、interface{}
类型相当于一个万能类型,可以用来表示任意类型的值。因此,使用 []interface{}
类型的切片可以存储任意类型的值,但是在使用这些值时需要进行类型断言(type assertion)