Go1.20 新特性:context支持自定义错误1
问题
熟悉 Go 语言的同学都知道,context 包只对外提供了两种取消原因 context.DeadlineExceeded 和 context.Canceled,不支持自定义原因,就像下面这样:
func main() {
// Pass a context with a timeout to tell a blocking function that it
// should abandon its work after the timeout elapses.
timeoutDuration...
Go1.20 新特性:切片转数组
Go1.20 正式版本还没有发布,官方计划 2023 年 2 月份发布。不过,Go1.20rc 已经在 12 月 8 号发布了,一起来尝鲜。
语言特性方面主要有四个优化,其中最主要的添加了 切片转数组 功能。
其实在 Go1.17 版本,Go语言已经有 切片转数组指针 的功能。
可以看 P 神的这篇文章,了解下详情。
引入 切片转数组指针 特性之后,bradfitz 在改造标准库时就有了下面这次更改:
【截图】
但是在代码 review 时,他发现这样写有点“丑”,需要先取得数组指针再解引用,然后返回数组。...