go 函数的参数传递方式

分两种

1、值传递

值类型:基本数据类型int系列,float系列,boolstring数组和结构体struct

2、引用传递

引用类型:指针slice切片、map、管道chaninterface等都是引用类型

其实,不和是值传递还是引用传递,传递给函数的都是变量的副本,不同的是值传递的是值的拷贝,引用传递的是地址的拷贝地址拷贝效率高,因为数据量小,而值拷贝决定于数据量的大小,数据越大,效率越低

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

  • 值类型:变量直接存储值,内存通常在中分配示

    go 函数的参数传递方式_第1张图片
    image.png

  • 引用类型:变量存储的是一个地址,这个地址对应的空间才真正存储数据(值),内存通常在
    上分配,当没有任何变量引用这个地址时,该地址对应的数据空间就成为一个垃圾,由GC来回收

    go 函数的参数传递方式_第2张图片
    image.png

  • 内存的的示意图

    go 函数的参数传递方式_第3张图片
    m

  • 如果希望函数内的变量参修改函数外的变量,可以传入变量的地址&,函数内以指数针的方式操作变量

你可能感兴趣的:(go 函数的参数传递方式)