作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。
想改进这个问题?将问题更新为 on-topic对于堆栈溢出。
2年前关闭。
Improve this question
首先,如果这是一个明显或直接的答案,我深表歉意,但我似乎无法理解以下代码的确切过程。
package main
import (
"fmt"
)
func xyz() *int {
n := 42
return &n
}
func main() {
num := xyz()
fmt.Println("The number is", *num)
}
最佳答案
转义分析在编译时工作。当编译器实现变量n
的地址时离开函数,它编译一个如下所示的函数:
func xyz() *int {
n:=newInHeap(int)
*n := 42
return n
}
newInHeap
是一个假设函数,总是在堆中分配变量。常规
new
如果变量没有转义函数,则可以在堆栈上分配变量。
关于go - 逃逸分析之前的变量生命周期是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61544414/
我是Linux的新手,正在尝试创建一个TikZ图形来解析文件。为此,我使用包含以下语句的$%&-bash脚本读取文件 echo "\fill[color=blue] ($xp,$zp) circle
我是一名优秀的程序员,十分优秀!