Go 1.11 正式发布:对 Modules 的支持

新版本主要两大核心功能:Modules 和 WebAssembly

新版本在工具链、运行时和库都有许多变化和改进。当然,兼容性方面依然会兼容旧版本。此外有两个最值得关注且激动人心的新特性 —— 对模块(modules)和 WebAssembly 的支持。

Go Modules

此版本增加了对被称作“模块(Go Modules)”的初步支持,这是 GOPATH 的替代方案,集成了对版本控制和软件包分发的支持。该功能目前仍处于实验性阶段,并且仍有一些可能会影响使用的问题,因此请随意使用问题跟踪器进行反馈或查阅解决方案。

WebAssembly

Go 1.11 还为 WebAssembly (js/wasm) 添加了一个处于实验性阶段的端口。它使得开发者可将 Go 程序编译为与四个主流 Web 浏览器兼容的二进制格式。可以在 webassembly.org 上阅读有关 WebAssembly(缩写为"WASM")的更多信息。

Go 程序现在可被编译为一个 WebAssembly 模块,该模块包括用于 goroutine 调度、垃圾收集、映射等的 Go 运行时。因此,生成的模块大小约为 2MB,或压缩后为 500KB 左右。Go 程序也可以使用新的实验性 syscall/js 包调用 JavaScript。有关二进制包大小和与其他语言互操作的问题尚未成为优先处理事项,不过会在将来的版本中得到解决。

有关 Go 1.11 中变更的更多详细信息,请参阅发行说明 >>> docs.studygolang.com
展开
4