跳至主要內容

数值类型+低占用类型

LincZero大约 1 分钟

数值类型+低占用类型

数据类型

数据类型

  • 基本数据类型
    • 数值型
      • 整数类型 (int, int8, int16, int32, int64) (uint, uint8, uint16, uint32, uint64) (byte)
      • 浮点类型 (float32, float64)
    • 字符型 (没有单独的字符型,使用byte来保存单个字母字符)
    • 布尔型 (bool)
    • 字符串 (string),在Go里字符串居然是基本数据类型,其他语言基本不属于
  • 派生数据类型/复杂数据类型
    • 指针
    • 数组
    • 结构体
    • 管道
    • 函数
    • 切片
    • 接口
    • map

整数类型

和其他语言都差不多

分类:(int, int8, int16, int32, int64) (uint, uint8, uint16, uint32, uint64) (byte)

  • 有u表示无符号,无u有符号。末尾带数字就表示占几个bit
  • 例外1:没有数字的根据机器来定
    • int == int32 (32位系统) == int64 (64位系统)
    • uint == uint32 (32位系统) == uint64 (64位系统)
  • 例外2:(说好的建议只有一种写法呢……不建议使用)
    • rune,等价于int32
    • byte,等价于uint8

选用:Go默认优先使用int类型。遵循保小不保大的原则,即保证程序正确运行下,尽量使用占用空间小的数据类型

浮点类型

和其他语言都差不多

分类:(float32, float64),Go默认有限

var num1 float32 = 3.14
var num2 float32 = -3.14
var num3 float32 = 314E-2 // E可以小写
var num4 float32 = 314E+2 // E可以小写

选用:Go默认优先使用float64类型

布尔类型

占一个字节

var flag1 bool = true
var flag2 bool = false
var flag3 bool = 5 < 9