TODO:Golang指针使用注意事项
admin
2023-08-02 07:20:07
0

TODO:Golang指针使用注意事项

TODO:Golang指针使用注意事项

先来看简单的例子1:

TODO:Golang指针使用注意事项

输出:

1

1

例子2:

TODO:Golang指针使用注意事项

输出:

1

3

例子1是使用值传递,Add方法不会做任何改变;例子2是使用指针传递,会改变地址,从而改变地址。

在看例子3:

TODO:Golang指针使用注意事项

输出:

map[a:aa b:bb]

map[b:world a:hello]

发现什么了,TestMap前面没有加*,没有用指针,怎么也会改变值呢?因为map提供键值功能,用起来像指针引用的类型。类似这种功能的类型还有,数组切片,channel,interface。Go语言包这种指针引用类型,有兴趣可以去阅读一下源码,变量前面都有带“*”号,如果没有看看是否是map类型等。

值的拷贝,操作后不会影响到副本的值;而指针则会改变同一地址的所有变量名。例子4:

TODO:Golang指针使用注意事项

输出:

tempBytes: [97 98 99 100 101 102 103 104]

buf: abcdefgh

temp3: [97 98 99] abc

buf: defgh

buf1: defgh

temp1: [100] d

buf: efgh

buf1: efgh

tempBytes: [97 98 99 100 101 102 103 104]

tempBytes是变量所以值没有变化;buf是指针,buf1是buf的别名,操作了buf或者buf1都会改变buf和buf1的值。如果要是有拷贝一个buf的值,得重新创建一个相同值指针即可,例子5:

TODO:Golang指针使用注意事项

输出我们想要的结果:

tempBytes: [97 98 99 100 101 102 103 104]

buf: abcdefgh

temp3: [97 98 99] abc

buf: defgh

buf1: abcdefgh

temp1: [97] a

buf: defgh

buf1: bcdefgh

tempBytes: [97 98 99 100 101 102 103 104]

Go自带垃圾回收功能,使得我们不需要人工去处理指针内存管理,让我们更专注于代码的开发,提高效率。


wxgzh:ludong86

TODO:Golang指针使用注意事项


相关内容

热门资讯

多名艺人集体公开讨薪、追债,太... 【文/观察者网 阮佳琪】7月9日,“多名艺人发声讨债”词条登上微博热搜。当天凌晨,通过《星动亚洲》等...
LG立式空调通电后跳闸 1、可能是电路板上面的压敏电阻坏了。2、如果其他功能如送风不跳闸,就是室外机风机或压缩机有问题。3、...
万能空调遥控器lg代码 万能空调遥控器是一种兼容多种品牌型号的遥控器,通过简单的设定,就能够使用它来控制您的空调。下面是万能...
lg空调遥控器有显示但打不开空... 1、lg空调控制器上的拨钮未拨到适当位置,如拨到较高的位置上,房间内的温度尚未达到空调设定温度上限值...
立式空调不制冷的原因及解决办法 原因可能是空调的制冷剂不足,可以给空调加氟解决;原因可能是空调的室内外传输系统出现短路的状况,可以检...
变频空调拆装会损坏电路板吗 不会。1、拆卸室内机需要注意,拆卸过程中注意防止冷凝水进入线路板很重要。2、拆卸室外机方面需要清楚,...
公共场所的艺术品吓到了人,谁的... 澎湃新闻记者 陆林汉 黄松最近,上海东方绿舟的48个“池中人”玻璃雕像因“有点吓人”被不少网友吐槽,...
一枚炸弹、一名女杀手,2.2亿... ·左图:瓦季姆·叶尔莫拉耶夫;右图:排爆小组在爆炸现场处置。(盖蒂图片社)当地时间6月29日,摩纳哥...
大动作!中缅铁路年内开工,打破... 作者 | 溪云霍尔木兹海峡封了100多天后,一条“拖”了二十年的铁路,突然提速了。前不久,缅甸总统敏...
多地宣布停课、停工、停产、停运... 澎湃新闻记者 蒋子文 陈悦实习生 李君 吴乐妍台风“巴威”中心已进入我国台风24小时警戒区。中央气象...