Go1.21.0是2023年8月8日发布的Go语言的最新版本,它带来了一些语言和工具的变化。
- min和max内置函数:Go1.21.0增加了两个新的内置函数min和max,用来对任意可比较的有序类型进行最小值或最大值的操作。min和max函数可以接受一个或多个参数,并返回其中的最小值或最大值。如果参数是浮点数并且包含NaN,min和max函数会返回NaN。
- clear预定义函数:Go1.21.0增加了一个clear预定义函数用来做切片和map的clear操作。对于切片,clear函数会将所有元素设置为零值,但保持切片的长度和容量不变。对于map,clear函数会删除所有键值对,得到一个空map。clear函数的使用示例在[这里]展示。
- 改变panic(nil)语义:Go1.21.0改变了panic(nil)的语义,使得recover函数在捕获到panic(nil)时不再返回nil,而是返回一个特定的错误类型PanicNilError。这样可以避免开发者误以为没有发生panic,而继续执行正常逻辑。
- 新增标准库:slices、maps、slog 等 :这几个库正式进入标准库了。
还有更多其他特性或变化,可以通过官方文档了解:https://go.dev/doc/go1.21。
可以官方方式试用,也可以在 Go语言中文网下载最新版:https://studygolang.com/dl。
有疑问加站长微信联系(非本文作者)

比较坑的是
context
.从ctx复制了一份newCtx , 还去掉了
cancel
, 然后newctx就不会关联ctx的cancel
了context.WithoutCancel
, 它不就是为了取消cancel
关联的么,为啥坑了不知道为什么,我安装了go1.21后,编译的部分程序会出现无法启动的问题。