一、数据类型分类

1.基本数据类型与引用数据类型

  • 基本数据类型:数值型、字符串型、布尔型
  • 派生数据类型:指针、数组、结构体、通道、切片、函数、接口和Map
  • 二、数据类型 - 图1

2.数据类型长度与范围

  • 数字型
序号 类型和描述
1 uint8 无符号 8 位整型 (0 到 255)
2 uint16 无符号 16 位整型 (0 到 65535)
3 uint32 无符号 32 位整型 (0 到 4294967295)
4 uint64 无符号 64 位整型 (0 到 18446744073709551615)
5 int8 有符号 8 位整型 (-128 到 127) 0
6 int16 有符号 16 位整型 (-32768 到 32767)
7 int32 有符号 32 位整型 (-2147483648 到 2147483647)
8 int64 有符号 64 位整型 (-9223372036854775808 到 9223372036854775807)
  • 浮点型 (小数)

float:float32 float64,默认保留后6位,%.1f可以设置保留1位数字,以此类推

  1. func main() {
  2. var a float32 = 3.16
  3. var b float64 = 5
  4. var c float64 = 3.14156
  5. fmt.Print(a) //3.160000
  6. fmt.Printf("a:%f\n",b) //5.000000 f%格式化输出浮点型
  7. fmt.Printf("b:%.3f",b) //5.000 保留后3位小数
  8. fmt.Printf("c:%.2f",c) //3.14
  9. fmt.Printf("c:%.3f",c) //3.142 如果小于当前保留数,四舍五入
  10. }

byte:别名uint8 (0-255之间的整数,可用byte定义)

  1. func main() {
  2. var a byte =255
  3. var b byte =256 //报错overflows 溢出
  4. fmt.Println(a)
  5. }

3.数据类型转换

数据类型转换是将一种数据类型转换成另一个数据类型。

由于Go语言不存在隐式类型转换,因此所有的类型转换都必须显式的声明: A = A(B)

  1. func main() {
  2. var b float64 = 2.6
  3. c :=int(b)
  4. fmt.Println(c) //2 浮点数转int,只会保留整数部分
  5. }
需要注意的是:从范围大的类型转换为范围小的类型会出现精度丢失,对数据影响较大。