值类型和引用类型
值类型基本数据类型: int 系列, float 系列, bool, string 、数组和结构体struct
使用这些类型的变量直接指向存在内存中的值,值类型的变量的值存储在栈中。
当使用等号=将一个变量的值赋给另一个变量时,如 j = i ,实际上是在内存中将 i 的值进行了拷贝。
可以通过 &i 获取变量 i 的内存地址。 值拷贝
引用类型:指针、slice切片、map、管道chan、interface 等都是引用类型
引用类型拥有更复杂的存储结构:
(1)分配内存
(2)初始化一系列属性等一个引用类型的变量r1存储的是r1的值所在的内存地址(数字),或内存地址中第一个字所在的位置,这个内存地址被称之为指针,这个指针实际上也被存在另外的某一个字中。
值类型在拷贝的时候传递的是值,当值发生变化不会影响原来的值。引用类型在拷贝时传递的是引用,当值发生变化时会影响原来的值。
两者的主要区别:拷贝操作和函数传参。值类型和引用类型
值类型基本数据类型: int 系列, float 系列, boo