golang传值和传引用

栏目: Go · 发布时间: 6年前

内容简介:1.定义:b = a;b.modify();

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, 1, 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看这篇博文:

7.channel:

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


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

深入浅出React和Redux

深入浅出React和Redux

程墨 / 机械工业出版社 / 2017-4-28 / 69

本书作者是资深开发人员,有过多年的开发经验,总结了自己使用React和Redux的实战经验,系统分析React和Redux结合的优势,与开发技巧,为开发大型系统提供参考。主要内容包括:React的基础知识、如何设计易于维护的React组件、如何使用Redux控制数据流、React和Redux的相结合的方式、同构的React和Redux架构、React和Redux的性能优化、组件的测试等。一起来看看 《深入浅出React和Redux》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

MD5 加密
MD5 加密

MD5 加密工具

html转js在线工具
html转js在线工具

html转js在线工具