Go_basic_type
Contents
Go是强类型语言,不会像python一样进行隐式转换。任何不同类型之间的转换都必须显式说明,也不支持类似C语言中的运算符重载。
数字类型
Go语言支持整型和浮点型数字,并且原生支持复数。
有些类型是基于架构的,类型长度由运行程序所在操作系统决定:
int和uint在 32 位操作系统上,它们均使用 32 位(4 个字节),在 64 位操作系统上,它们均使用 64 位(8 个字节)。uintptr的长度被设定为足够存放一个指针即可。
其他与操作系统无关的类型有固定的大小范围:
整数:
int8(-128 -> 127)int16(-32768 -> 32767)int32(-2,147,483,648 -> 2,147,483,647)int64(-9,223,372,036,854,775,808 -> 9,223,372,036,854,775,807)
无符号整数:
uint8(0 -> 255)uint16(0 -> 65,535)uint32(0 -> 4,294,967,295)uint64(0 -> 18,446,744,073,709,551,615)
浮点型(IEEE-754 标准):
float32(+- 1e-45 -> +- 3.4 * 1e38)精确到小数点后7位float64(+- 5 * 1e-324 -> 107 * 1e308) 精确到小数点后15位
注意Go中没有 float和double 类型,只有float32和float64,再不考虑内存占用情况下优先使用float64
64位系统中,int和int64是一种类型吗?
尽管64位系统中int和int64表示数字范围相同,但是仍然是不同类型。需要显示转换才能混用。