go1.20新特性,手动内存管理
测试特性安装go1.20rc
go install golang.org/dl/go1.20rc1@latest
go1.20rc1 download
使用go1.20rc1 这个go命令,可以更改二进制名字(例如改为go20rc,文章以下位置全使用此名字),位置存放在$GOBIN目录,即是$GOPATH/bin目录,方便使用
测试是否成功 go20rc version
go version go1.20rc1 darwin/arm64
arena
package main
import (
"arena"
"fmt"
)
type T struct {
val int
}
func main() {
are := arena.NewArena()
t := arena.New[T](are)
t.val = 100
fmt.Println(t)
are.Free()
// free 后会panic
t = arena.New[T](are)
t.val = 100
fmt.Println(t)
}
注意build 需要加上构建约束tag
go20rc build -tags goexperiment.arenas