值类型和引用类型的说明
1.值类型:基本数据类型int系列,float系列,bool,string,数组和结构体struct
2.引用类型:指针,slice切片、map、管道chan、interface等都是引用类型
值类型和引用类型的特点
1.值类型:变量直接存储值,内存通常在栈中分配
2.引用类型:变量存储的值是一个内存地址,这个内存地址对应的空间才是真正存储数据(值),内存通常在堆上分配(也有可能会被分配在栈上),当没有任何变量引用这个地址时,改地址对应的数据空间就成为一个垃圾,由GC来回收。
简单来理解
假设在厨房中有大大小小的各种罐子
值类型是把东西放在一个罐子里,通过变量可以知道这个罐子的摆放位置,罐子里面的东西就是值,
引用类型也是把东西放在一个罐子里,变量名也同样代表的是这个罐子摆放的位置,罐子里面的东西(值)是另外一个罐子的摆放位置。
这里面说的值就是我们在开发当中实际使用到的内容,比如说var a = 100,var b = "张三",这里的100和张三就是罐子的值。不同的是引用类型有两个罐子,前面那个管子里面存的值是后面那个罐子的摆放位置,后面那个罐子里的值才是100或者张三