首次提交:初始化项目代码

This commit is contained in:
sunct
2026-07-31 15:18:32 +08:00
commit d6393266b0
193 changed files with 14287 additions and 0 deletions
+45
View File
@@ -0,0 +1,45 @@
package main
import "fmt"
// 全局变量,存储Person指针
var globalPerson *Person2
// 全局切片,存储Person指针
var globalPersonSlice []*Person2
type Person2 struct {
Name string
Age int
}
// storePerson 接收指针参数并返回,触发逃逸
func storePerson(p *Person2) *Person2 {
return p // 指针被返回,触发逃逸
}
// addToGlobal 将指针存入全局变量,触发逃逸
func addToGlobal() {
p := &Person2{Name: "Bob", Age: 30}
globalPerson = p // 存入全局变量,p逃逸
}
// addToGlobalSlice 将指针存入全局切片,触发逃逸
func addToGlobalSlice() {
for i := 0; i < 3; i++ {
p := &Person2{Name: fmt.Sprintf("Person%d", i), Age: 20 + i}
globalPersonSlice = append(globalPersonSlice, p) // p逃逸至切片
}
}
func main() {
p := &Person2{Name: "Charlie", Age: 28}
storedP := storePerson(p)
fmt.Printf("引用传递:%+v\n", *storedP)
addToGlobal()
fmt.Printf("全局变量存储:%+v\n", *globalPerson)
addToGlobalSlice()
fmt.Printf("全局切片存储:%d个Person\n", len(globalPersonSlice))
}