布尔型:bool

长度1字节

取值范围:true,false

注意:不可以用数字代表true或false


整型:Int

根据平台可能为32为或64位

 8位整型:int8/uint8

长度:1字节

取值范围:-127~127,0~255

byte 字节型  其实就是 uint8的别名

 16位整型:int16/uint16

长度:2字节

取值范围:-32768~32768,0~65535

 32位整型:int32/uint32

长度:4字节

rune就是int32的别名

 浮点型:float32/float64

长度:4字节/8字节

小数位:float32精确到小数点后7位,float64精确到小数点后15位

保存指针的uintptr类型,根据平台来分为32位或64位


其他类型:

array   struct   string


引用类型:

map  slice  chan(并发会使用到)

接口类型:interface

函数类型:func   (因为函数可以复制给变量的)

类型零值:

    零值并不等于空置,而是当变量被声明为某种类型后的默认值,通常情况下值的类型都为0,bool为 false,string为空字符串,数组的话和数组类型的零值保持一致 [2]int,则数组的初始值为[0 0]


类型别名:

    使用type对类型进行别名  

Golang学习笔记(2)---go语言基本类型_第1张图片

    这样是可以的,但是不建议这样使用,type定义一些其他的别名(type byte64  int64),来使代码可读性更强

    type定义的类型的别名,其实只是和该类型的结构相同,所以要做类型转换的时候,还是需要进行显式转换的,而byte rune 的确是uint8 int32,的别名,可以进行相互转换

    可以进行转换:

Golang学习笔记(2)---go语言基本类型_第2张图片

 这样是无法进行转换的

  必须做显式的类型转换才可以