ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
># 值类型和引用类型 1. **值类型(Value Types)**: * 在初始化、赋值时,两个变量互不影响;参数传递时,传递的是一个副本 * 值类型的变量直接存储它们的数据(如int、float、bool等基本类型),或者是一个固定大小的对应数据结构的实例(如struct)。 * 当你将一个值类型的变量赋值给另一个变量,会复制整个值。这意味着每个变量都有自己的数据副本,修改其中一个变量的值不会影响另一个变量。 * 值类型的变量通常在栈上分配内存。 2. **引用类型(Reference Types)**: * 在初始化、赋值时,两个变量实际是同一个;参数传递时,传递的是变量本身 * 引用类型的变量存储的是一个指向数据的引用(如slice、map、channel等)。 * 当你将一个引用类型的变量赋值给另一个变量,它们会引用同一个数据结构。因此,修改其中一个变量可能会影响到另一个变量,因为它们共享相同的数据。 * 引用类型的变量通常在堆上分配内存,Go语言的垃圾收集器会处理内存的释放。 --- - 引用类型:slice、map、channel、指针、接口、函数(匿名,闭包) - [深度解析Golang中为什么interface是引用类型](https://blog.csdn.net/weixin_53623989/article/details/135915163)