整型(integer)是Go语言中最常用的基本数据类型之一,表示整数值。Go语言提供了多种整型类型,不同类型的整型类型在存储范围、内存占用、可表示的数字范围等方面有所不同。在本篇文章中,我们将对Go语言的整型类型进行详细介绍,并且给出示例以加深理解。
整型类型的分类
Go语言提供了以下整型类型:
- int8:有符号8位整数类型,范围是 -128 到 127。
- int16:有符号16位整数类型,范围是 -32768 到 32767。
- int32:有符号32位整数类型,范围是 -2147483648 到 2147483647。
- int64:有符号64位整数类型,范围是 -9223372036854775808 到 9223372036854775807。
- uint8:无符号8位整数类型,范围是 0 到 255。
- uint16:无符号16位整数类型,范围是 0 到 65535。
- uint32:无符号32位整数类型,范围是 0 到 4294967295。
- uint64:无符号64位整数类型,范围是 0 到 18446744073709551615。
- uintptr:用于存储指针的无符号整数类型,在32位系统上为32位,在64位系统上为64位。
其中,int和uint类型的大小和平台相关。在32位平台上,它们都是32位;在64位平台上,它们都是64位。在实际应用中,为了避免不必要的麻烦,我们一般使用int和uint类型。
整型类型的默认值
整型类型的默认值为0,可以用下面的代码验证:
代码语言:javascript复制var i int
fmt.Println(i) // 输出 0
整型类型的转换
Go语言中不同整型类型之间可以相互转换,但需要注意转换时可能会发生精度丢失或数据溢出的问题。下面是一个简单的转换示例:
代码语言:javascript复制var a int32 = 100
var b int64 = int64(a)
fmt.Println(a, b) // 输出 100 100
上面的代码将int32类型的变量a转换为int64类型的变量b。
整型类型的运算
整型类型支持基本的算术运算(加、减、乘、除)和比较运算(等于、不等于、大于、小于、大于等于、小于等于)。下面是一些简单的示例::
代码语言:javascript复制var a, b int = 3, 4
fmt.Println(a b) // 输出 7
fmt.Println(a - b) // 输出 -1
fmt.Println(a * b) // 输出 12
fmt.Println(b / a) // 输出 1
fmt.Println(a == b) // 输出 false
fmt.Println(a != b) // 输出 true
fmt.Println(a > b) // 输出 false
fmt.Println(a < b) // 输出 true
fmt.Println(a >= b) // 输出 false
fmt.Println(a <= b) // 输出 true
上面的代码中,我们定义了两个整型变量a和b,然后对它们进行了加、减、乘、除、等于、不等于、大于、小于、大于等于、小于等于等基本运算,输出了运算结果。需要注意的是,在整型除法运算中,如果除不尽,Go语言会向下取整。