🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[TOC] >[success] ## **1:基本介绍** 我们在讲解函数注意事项和使用细节时,已经讲过值类型和引用类型了,这里 我们再系统总结一下,因为这是重难点,**值类型参数默认就是值传递**,而引用类型 **参数默认就是引用传递。** **两种传递方式** 1)值传递 2)引用传递 其实:不管是值传递还是引用传递,传递给函数的都是变量的副本,不同的是,值传递的是值的拷贝,引用传递的是地址的拷贝,一般来说,**地址拷贝效率高**,因为数据量小,而值拷贝诀定拷贝的数据大小,数据越大,效率越低。 >[success] ## **2:值类型和引用类型** 1)值类型: 基本数据类型int系列, float系列, bool, string、数组和结构体struct 2)引用类型: 指针、slice切片、 map、管道chan、interface 等都是引用类型 ●**函数参数的传递方式** 3)值类型默认是值传递: 变量直接存储值,内存通常在栈中分配[案例:画出示意图] ![](https://img.kancloud.cn/87/09/8709dda96bcaef9059738cca714eae12_1280x404.png) 4)引用类型默认是引用传递:变量存储的是一个地址,这个地址对应的空间才真正存储数据(值),内存通常在堆上分配,当没有任何变量引用这个地址时,该地址对应的数据空间就成为一个垃圾,由GC来回收。[案例:并画出示意图] ![](https://img.kancloud.cn/e9/95/e99551145ce5600d304eb67f9f894542_1280x352.png)