Go语言重大部分类型都是基于值语义,包括: 1.基本类型:byte,int,bool,float32,float64,string等; 2.复合类型:数组array,结构体struct,指针pointer等; 重点来了,C/C++中,数组传递是引用语义,但在Go中,数组和基本类型没啥区别,都是值语义,也就是说,Go中的数组传递是完全值传递; 不理解?看例子! 那么如何能引用传递呢?很简单,用指针形式,看例子!
//C或C++中 int aData[3] = {1,2,3}; auto p = aData; //实际上这里相当于 int* p = aData p[1]++; //最终导致 aData = {1, 3, 3} //Go中 var a = [3]int{1,2,3} var b = a b[1]++ // 最终a={1,2,3}并没有被改变
//这里演示数组的引用传递 var a=[3]int{1,2,3} var b = &a // 与上一个例子对比,差别在这里对 a 取地址,相当于 b 类型为 *[3]int b[1]++ //最终会改变a={1,3,3}
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算