go语言---传值和传引用

go语言---传值和传引用,第1张

概述go语言---传值和传引用 https://blog.csdn.net/cyk2396/article/details/78893828 1.定义: b = a; b.modify(); 如果b的修改不会改变a的值,那么是传值;否则,是传引用 2.golang中大多数是传值的,有: 基本类型:byte,int,bool,string 复合类型:数组,数组切片,结构体,map,channnel 3. go语言---传值和传引用 https://blog.csdn.net/cyk2396/article/details/78893828

1.定义:
b = a;
b.modify();
如果b的修改不会改变a的值,那么是传值;否则,是传引用

2.golang中大多数是传值的,有:
基本类型:byte,int,bool,string
复合类型:数组,数组切片,结构体,map,channnel
3.数组:
3.1 传值

func main() {    var array = [3]int{0,1,2}    var array2 = array    slice2[2] = 5    fmt.Println(array,array2)}

输出结果:
[0 1 2] [0 1 5]
3.2.传引用的使用方法:

func main() {    var array = [3]int{0,2}    var array2 = &array    array2[2] = 5    fmt.Println(array,*array2)}

输出结果:
[0 1 5] [0 1 5]
4.数组切片看这篇博文:
http://blog.csdn.net/cyk2396/article/details/78893420

5.struct结构体:

在函数中参数的传递可以是传值(对象的复制,需要开辟新的空间来存储该新对象)和传引用(指针的复制,和原来的指针指向同一个对象),建议使用指针,原因有两个:能够改变参数的值,避免大对象的复制 *** 作节省内存。struct和数组的用法类似

6.map看这篇博文:

http://blog.csdn.net/cyk2396/article/details/78890185

7.channel:

channel和数组切片,map一样,传参的方式是传值,都可以直接使用,其内部维护着指向真正存储空间的指针。

总结

以上是内存溢出为你收集整理的go语言---传值和传引用全部内容,希望文章能够帮你解决go语言---传值和传引用所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1270470.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存