这是一个菜鸟问题,请耐心解答。所以疑问是为什么 f() 函数指向不同的地址。我的理解是变量 v 必须覆盖旧值。
package main
import "fmt"
var p = f()
func f() *int {
v := 1
return &v
}
func main() {
fmt.Println(f())
fmt.Println(f())
fmt.Println(f())
fmt.Println(p)
}
//0xc0000140b0
//0xc0000140b8
//0xc0000140e0
//0xc000014098
Run Code Online (Sandbox Code Playgroud)