Skip to content

Latest commit

 

History

History
24 lines (12 loc) · 1.32 KB

pass_by_value.md

File metadata and controls

24 lines (12 loc) · 1.32 KB

值传递、引用传递、值类型变量、引用类型变量

值传递

值传递(pass by value)是指在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数。

引用传递

引用传递(pass by reference)是指在调用函数时将实际参数的地址直接传递到函数中,那么在函数中对参数所进行的修改,将影响到实际参数。

需要注意的是存放实际参数地址的变量,若在传递到函数后发生改变(比如该变量的地址发生改变),即使它的值还是实际参数的地址,也不能称为引用传递。

值类型变量

值类型变量是变量本身直接存储数据

引用类型变量

引用类型变量,也可以称为指针型变量,该变量存储的是堆或者栈的地址,通过该变址我们可以找到实际的变量。我们可以称为该引用类型变量为指向实际变量类型的指针。

golangchannelmap函数都是引用类型变量(注意:尽管大部分人说slice是引用类型变量,实际上它不是)。

golang中所有函数的传参方式都是值传递。即使传递给函数的是引用类型变量,在golang中它也是值传递,我们可以称指针传递,但不是引用传递。