- 新增 go/basics/MemoryEscape/main.go,演示返回局部变量指针和闭包引用两种典型逃逸场景 - 在 note/随手记/go.md 中补充内存逃逸的概念、影响、常见原因及逃逸分析命令 - 清理 note/随手记/网址.md 中的多余空行
26 lines
288 B
Go
26 lines
288 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
)
|
|
type User struct {
|
|
Name string
|
|
}
|
|
|
|
func NewUser() *User {
|
|
u := User{}
|
|
return &u
|
|
}
|
|
|
|
func ClosureFunc() func() int {
|
|
a := 1
|
|
return func() int {
|
|
return a
|
|
}
|
|
}
|
|
func main() {
|
|
fmt.Println(NewUser())
|
|
cf:= ClosureFunc()
|
|
fmt.Println(cf())
|
|
}
|