1) 值类型:基本数据类型 int 系列, float 系列, bool, string 、数组和结构体 struct
2) 引用类型:指针、slice 切片、map、管道 chan、interface 等都是引用类型
1) 值类型:变量直接存储值,内存通常在栈中分配
2) 引用类型:变量存储的是一个地址,这个地址对应的空间才真正存储数据(值),内存通常在堆上分配,当没有任何变量引用这个地址时,该地址对应的数据空间就成为一个垃圾,由 GC 来回收
声明是不会分配内存的(与定义的区别),初始化需要 make ,分配内存后才能赋值和使用
结构体指针访问字段的标准方式应该是:(*结构体指针).字段名 ,比如 (*person).Name = "tom", 但 go 做了一个简化,持 也支持 结构体指针. 字段名, 比如 person.Name = "tom"。更加符合程序员使用的习惯,go 层 编译器底层 对 对 person.Name 化 做了转化 (*person).Name 。