Golang切片操作

FalconChen · · 12551 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

	s1 := []int{1, 2, 3, 4, 5} //短操作符声明 len为4,cap为4
	s2 := make([]int, 2, 4)    //make语法声明 ,len为2,cap为4
	s2 = []int{5, 6}

	s3 := append(s2, 7) //append一个元素
	fmt.Println(s3, s2) //[5 6 7] [5 6]

	s4 := append(s2, s1...) //append  一个切片所有的元素
	fmt.Println(s4)         //[5 6 3 4]

	//return
	copy(s1, s2)    //  复制,用s2的元素填充s1里去,改变原slice,覆盖对应的key
	fmt.Println(s1) //[5 6 3 4]

	s1[0], s1[1] = 1, 2
	copy(s2, s1)
	fmt.Println(s2) //[1 2] 目标slice len不够时,只填满len

	s5 := s1[1:4]
	s6 := s5[0:4] //不会报错,因为cap为4,从底层取得最后一位

	fmt.Println(s5, s6, cap(s6)) //[2 3 4] [2 3 4 5] 4

	//删除第三个元素
	s7 := append(s1[:1], s1[3:]...)
	fmt.Println(s7) //[1 4 5]

有疑问加站长微信联系(非本文作者)

本文来自:开源中国博客

感谢作者:FalconChen

查看原文:Golang切片操作

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

12551 次点击  
加入收藏 微博
上一篇:Golang 反射
下一篇:Golang map
1 回复  |  直到 2019-07-19 17:03:48
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传