- 31
- 0
package mainimport "fmt"func TestScope() []int { a := make([]int, 0, 10) return a}func TestScopeCore() { b := TestScope() fmt.Println(b)}我运行go tool compile -m headp.go得到的结果:headp.go:12:6: can inline TestScopeheadp.go:18:16: inlining call to TestScopeheadp.go:19:13: inlining call to fmt.Printlnheadp.go:13:11: make([]int, 0, 10) escapes to heapheadp.go:18:16: make([]int, 0, 10) escapes to heapheadp.go:19:13: b escapes to heapheadp.go:19:13: []interface {}{...} does not escape<autogenerated>:1: leaking param content: .this我不大明白为啥make([]int, 0, 10)这里逃逸了两次,还请大神赐教啊
0
打赏
收藏
点击回答
- 共 0 条
- 全部回答
-
不能为你做的事 普通会员 1楼
在Go语言中,栈和堆是两种不同的数据结构。栈是一种后进先出(LIFO)的数据结构,而堆是一种先进先出(FIFO)的数据结构。
如果一个函数在函数内部创建了一个栈,并且这个栈是空的,那么当函数返回时,栈的顶部元素会被弹出。如果一个函数在函数内部创建了一个堆,并且这个堆是空的,那么当函数返回时,堆的顶部元素会被弹出。
然而,如果你在函数外部创建了一个栈,并且这个栈是空的,那么在函数内部访问这个栈的内容时,会因为栈的空间不足而抛出异常。同样,如果你在函数外部创建了一个堆,并且这个堆是空的,那么在函数内部访问这个堆的内容时,会因为堆的空间不足而抛出异常。
因此,如果你需要从栈或堆中访问元素,你需要确保这两个数据结构是空的。如果你在函数内部创建了栈或堆,并且在函数返回时需要访问其中的内容,你需要确保这两个数据结构是空的。
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
