前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Go语言函数间传递切片的问题

Go语言函数间传递切片的问题

作者头像
runzhliu
发布2020-08-05 16:27:39
6380
发布2020-08-05 16:27:39
举报
文章被收录于专栏:容器计算容器计算

GoInAction

Go 语言函数间传递切片,也是在函数间以值传递的方式进行的,由于切片的大小比较小,在函数间复制和传递的成本是比较低的。

代码语言:javascript
复制
// 分配包含100w个整型值的切片
slice := make([]int, 1e6)

// 将 slice 传递到函数 foo
slice = foo(slice)

// 函数 foo 接收一个整型切片,并返回这个切片
func foo(slice []int) []int {
    ...
    return slice
}

成本低的原因是去切片内部的实现只有3个字段,分别是指向底层数组的指针,切片的长度和切片的容量。

也就是说,存储一个切片,只需要24个字节即可。在函数传递的时候,只会复制切片本身,而不会涉及其底层指向的数组。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-02-10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档