百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程字典 > 正文

Go 1.13 正式发布,看看都有哪些值得关注的特性

toyiye 2024-06-21 12:00 8 浏览 0 评论

Go Team 一直保持着 2、8 月份发布的节奏。这次 Go 1.13 版本没能在 8 月份发布,而是在美国时间 9 月 3 日发布,delay 的原因据说主要有:

  • Brad Fitzpatrick 老婆生二胎,休陪产假了;
  • Module 做了很大的改进。

我们先不管这些,看看这次发布的一些信息。

三个链接

在邮件组中,官方宣布 Go1.13 发布,依照惯例,提供了如下三个链接:

  1. https://blog.golang.org/go1.13
  2. https://golang.org/dl/ (Go 中文网下载:https://studygolang.com/dl)
  3. https://golang.org/doc/go1.13 (Go 中文网文档:http://docs.studygolang.com/doc/go1.13)

分别是发布官方博文,下载页面和 Release Notes。

官方博文主要内容

今天 Go 团队非常高兴地宣布 Go 1.13 的发布。 您可以从下载页面获取它。

一些亮点包括:

  • 现在,Go 命令默认使用 Go module mirror 和 Go checksum 数据库来下载和验证模块
  • 数字字面值的改进
  • 错误包装
  • 默认启用 TLS 1.3
  • 改进的模块支持

有关更改的完整列表以及有关上述改进的更多信息,请参阅 Go 1.13 发行说明[1]

我们要感谢为此版本做出贡献的所有人,包括编写代码,提交错误,提供反馈和/或测试测试版和候选发布版。 您的贡献和勤奋有助于确保Go 1.13尽可能稳定。 也就是说,如果您发现任何问题,请提出问题。

我们希望您喜欢新版本!

关注的特性

Go module 相关

1、升级到 Go 1.13 后 GOPROXY 和 GOSUMDB 都会有默认值,且默认值在国内是无法访问的,所以为了一切正常,建议大家 go env -w GOPROXY=https://goproxy.cn,direct,这个命令是 Go 1.13 新加的,然后 GOSUMDB 就不用改了,因为 goproxy.cn[2] 支持代理它的默认值,所以直接就能用。在 Go1.13 之前,GOPROXY=https://goproxy.cn 即可,逗号列表是 Go1.13 才有的。

2、如果你用了 GOPROXY 或 GOSUMDB,那么你就可能需要了解一下 GONOPROXY、GONOSUDB 还有 GOPRIVATE。前两个是指定 Go 该怎么处理模块的下载与校验;后三个是指定 Go 在那些情况下不应该根据前两个处理。所以,私有库的问题可以解决。

3、关于 GOPROXY,看看 goproxy.cn 的作者发布的文章:goproxy.cn - 为中国 Go 语言开发者量身打造的模块代理[3]

数字字面量语法(Number literals syntax)[4]

这能便于开发者以二进制、八进制或十六进制浮点数的格式定义数字:

  • v := 0b00101101, 代表二进制的 101101,相当于十进制的 45。
  • v := 0o377,代表八进制的 377,相当于十进制的 255。
  • v := 0x1p-2,代表十六进制的 1 除以 22,也就是 0.25。

而且还允许我们用 _ 来分隔数字,比如说:

v := 123_456 等于 123456。

Error wrapping

Go 1.13 包含对错误包装的支持,如 Error Values 提议[5]中首次提出并在相关问题上讨论[6]

错误 e 可以通过提供返回 w 的 Unwrap 方法来包装另一个错误 w。e 和 w 都可用于程序,允许 e 为 w 提供额外的上下文或重新解释它,同时仍然允许程序基于 w 做出决策。

为了支持包装,fmt.Errorf 现在有一个 %w 动词用于创建包装错误,错误包中的三个新函数(errors.Unwrap,errors.Is 和 errors.As)简化了展开和检查包装错误。

有关更多信息,请阅读错误包文档[7],或参阅错误值常见问题解答[8]。 很快就会有一篇博客文章。

其他重要的改进

  • 逃逸分析优化
  • defer大部分提升性能 30%
  • sync.pool 优化
  • 。。。

完整的改动参考 Release Notes http://docs.studygolang.com/doc/go1.13

总结

本次升级,最重要的就属 Go module 了,建议大家使用 goproxy.cn,如果使用中有任何问题,可以到 Go语言中文网(https://studygolang.com )反馈,作者盛傲飞会进行解答。

参考资料

[1]Go 1.13 发行说明: http://docs.studygolang.com/doc/go1.13

[2]goproxy.cn: http://goproxy.cn

[3]goproxy.cn - 为中国 Go 语言开发者量身打造的模块代理: https://studygolang.com/topics/10014

[4]数字字面量语法(Number literals syntax): https://go.googlesource.com/proposal/+/master/design/19308-number-literals.md

[5]Error Values 提议: https://go.googlesource.com/proposal/+/master/design/29934-error-values.md

[6]讨论: https://github.com/golang/go/issue/29934

[7]错误包文档: http://docs.studygolang.com/pkg/errors/

[8]常见问题解答: https://github.com/golang/go/wiki/ErrorValueFAQ

相关推荐

为何越来越多的编程语言使用JSON(为什么编程)

JSON是JavascriptObjectNotation的缩写,意思是Javascript对象表示法,是一种易于人类阅读和对编程友好的文本数据传递方法,是JavaScript语言规范定义的一个子...

何时在数据库中使用 JSON(数据库用json格式存储)

在本文中,您将了解何时应考虑将JSON数据类型添加到表中以及何时应避免使用它们。每天?分享?最新?软件?开发?,Devops,敏捷?,测试?以及?项目?管理?最新?,最热门?的?文章?,每天?花?...

MySQL 从零开始:05 数据类型(mysql数据类型有哪些,并举例)

前面的讲解中已经接触到了表的创建,表的创建是对字段的声明,比如:上述语句声明了字段的名称、类型、所占空间、默认值和是否可以为空等信息。其中的int、varchar、char和decimal都...

JSON对象花样进阶(json格式对象)

一、引言在现代Web开发中,JSON(JavaScriptObjectNotation)已经成为数据交换的标准格式。无论是从前端向后端发送数据,还是从后端接收数据,JSON都是不可或缺的一部分。...

深入理解 JSON 和 Form-data(json和formdata提交区别)

在讨论现代网络开发与API设计的语境下,理解客户端和服务器间如何有效且可靠地交换数据变得尤为关键。这里,特别值得关注的是两种主流数据格式:...

JSON 语法(json 语法 priority)

JSON语法是JavaScript语法的子集。JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔花括号保存对象方括号保存数组JS...

JSON语法详解(json的语法规则)

JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔大括号保存对象中括号保存数组注意:json的key是字符串,且必须是双引号,不能是单引号...

MySQL JSON数据类型操作(mysql的json)

概述mysql自5.7.8版本开始,就支持了json结构的数据存储和查询,这表明了mysql也在不断的学习和增加nosql数据库的有点。但mysql毕竟是关系型数据库,在处理json这种非结构化的数据...

JSON的数据模式(json数据格式示例)

像XML模式一样,JSON数据格式也有Schema,这是一个基于JSON格式的规范。JSON模式也以JSON格式编写。它用于验证JSON数据。JSON模式示例以下代码显示了基本的JSON模式。{"...

前端学习——JSON格式详解(后端json格式)

JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScriptProgrammingLa...

什么是 JSON:详解 JSON 及其优势(什么叫json)

现在程序员还有谁不知道JSON吗?无论对于前端还是后端,JSON都是一种常见的数据格式。那么JSON到底是什么呢?JSON的定义...

PostgreSQL JSON 类型:处理结构化数据

PostgreSQL提供JSON类型,以存储结构化数据。JSON是一种开放的数据格式,可用于存储各种类型的值。什么是JSON类型?JSON类型表示JSON(JavaScriptO...

JavaScript:JSON、三种包装类(javascript 包)

JOSN:我们希望可以将一个对象在不同的语言中进行传递,以达到通信的目的,最佳方式就是将一个对象转换为字符串的形式JSON(JavaScriptObjectNotation)-JS的对象表示法...

Python数据分析 只要1分钟 教你玩转JSON 全程干货

Json简介:Json,全名JavaScriptObjectNotation,JSON(JavaScriptObjectNotation(记号、标记))是一种轻量级的数据交换格式。它基于J...

比较一下JSON与XML两种数据格式?(json和xml哪个好)

JSON(JavaScriptObjectNotation)和XML(eXtensibleMarkupLanguage)是在日常开发中比较常用的两种数据格式,它们主要的作用就是用来进行数据的传...

取消回复欢迎 发表评论:

请填写验证码