Asta:是什么终结了我的鸽王生涯?Go 1.13 发布!

Asta:是什么终结了我的鸽王生涯?Go 1.13 发布!,第1张

概述鸽王自白此文本该写在Go1.13版本发布之前……然而我就是传说中的鸽王,放了司徒很多次鸽子。直到Go1.13发布了,没有任何理由再拖延,也正好可以借着这一次新版本的发布介绍一下Go语言新特性和GoTeam的变化,以及未来Go到底还会朝着怎么样的方向发展。Go1.13带来的新特性分

鸽王自白

此文本该写在 Go1.13 版本发布之前……然而我就是传说中的鸽王,放了司徒很多次鸽子。直到 Go1.13 发布了,没有任何理由再拖延,也正好可以借着这一次新版本的发布介绍一下 Go 语言新特性和 Go Team 的变化,以及未来 Go 到底还会朝着怎么样的方向发展。

Go 1.13 带来的新特性

分析的文章有很多,我就不事无巨细地介绍了,这里重点拿几个我自己比较关心的特性来说一下。

1. Go 命令默认使用 Go module

这也是Golang 1.13最重要的一个更新。环境变量 GO111MODulE 的默认值依然是 auto ,但是含义有所不同了:只要当前目录,或者某个父目录包含go.mod文件,那就采用 module 的方式来管理模块及依赖,不管当前目录是否在 GOPATH/src 下面。这里涉及到好几个环境变量,如 goproxy、GOPRIVATE、GOSUMDB、GOnopROXY 等。这个可以看一下前几天我们公众号的文章《goproxy.cn 为中国开发者量身打造模块代理》。

2. 对 defer 的使用效率普遍提高了30%

defer 这个功能虽然在开发上面带来了很多的便利性,但是对于深度使用 Go 的同学,很多时候你要调试性能的时候都会遇到这个问题,使用 defer 后的函数开销确实比没使用高了不少。

这个之前在社区里面也经常被吐槽,这一次的提升主要是在延迟对象的堆栈分配规则上带来了改进,但是这个适用于我们大多数的场景。

3. 错误包装

对错误处理的时候,支持嵌套,也就是一个 error 包含在另一个 error 里面。相应的,errors 包中增加了三个新的函数来支持 error 嵌套:errors.Unwrap、errors.Is、errors.As。错误 e 可以通过提供返回 w 的 Unwrap 方法来包装另一个错误 w。e 和 w 都可用于程序,允许 e 为 w 提供额外的上下文或重新解释它,同时仍然允许程序基于 w 做出决策。

为了支持包装, fmt.Errorf 现在有一个 %w 动词用于创建包装错误。

更多的新特性请大家扫码阅读这篇文章作为参考(不用***哦

总结

以上是内存溢出为你收集整理的Asta:是什么终结了我的鸽王生涯?Go 1.13 发布!全部内容,希望文章能够帮你解决Asta:是什么终结了我的鸽王生涯?Go 1.13 发布!所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1235638.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存