golang 值类型与引用类型的区别

1最本质的区别

值类型:内存中变量存储的是具体的值 比如: var num int  num存放的是具体的int值 

但是变量在内存中的地址可以通过 &num 来获取

引用类型:变量直接存放的就是一个地址值,这个地址值指向的空间存的才是值。

例如 var ptr *int =& num

 

2.值类型,引用类型都包括哪些

基本的数据类型 int系列,float系列,bool,string 数组和结构体 struct

引用类型包括 指针,slice 切片,map ,chan , interface 

 

3.值类型和引用类型的使用特点

值类型  直接存放值,内存通常在栈中分配

应用类型 变量存储的地址,通常真正的值在堆上分配。当么有变量引用这个地址的时候,该值会被gc回收

 

 

 

 

你可能感兴趣的:(golang 值类型与引用类型的区别)