ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

go语言的切片特性

2022-07-19 23:34:12  阅读:199  来源: 互联网

标签:summer Q2 Log 元素 特性 切片 数组 year go


概述:

在使用切片进行赋值的时候,产生新的数组的指针指向原来的数组,只要修改新数组中的元素时,原来数组的元素也会改变。

测试代码:

func TestSliceShareMemory(t *testing.T) {
	year := []string{"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}
	Q2 := year[3:6]
	t.Log(Q2, len(Q2), cap(Q2))
	summer := year[5:8]
	t.Log(summer, len(summer), cap(summer))
	summer[0] = "Unknow"
	t.Log(Q2)
	t.Log(year)
}

  测试结果:

 

 可以看到,修改了summer数组中的第一个元素为“Unkown”,结果Q2数组中的元素也会改变,而summer 和 Q2 都指向的是 year ,所以可以看到year 数组中的元素也发现了改变。这里切片实现了共享存储结构。如下图所示:

 

 

标签:summer,Q2,Log,元素,特性,切片,数组,year,go
来源: https://www.cnblogs.com/nLesxw/p/go_slice_learn.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有