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