点击围观!腾讯 TAPD 助力金融行业研发提效、敏捷转型最佳实践! 了解详情
写点什么

Go 1.11 添加实验性的 WebAssembly、模块等特性

  • 2018-09-04
  • 本文字数:912 字

    阅读完需:约 3 分钟

Go 1.11 的两个主要特性是 WebAssembly 模块,不过这两个特性依然处于实验性阶段。

模块为 GOPATH提供了替代方案,用来为项目定位依赖和管理版本化。如果go命令在$GOPATH/src之外的目录中运行,并且该目录中有一个模块的话,那么模块功能就会启用,否则go将会使用GOPATH。Google 的 Russ Cox 这样说到

Go 模块是包的一个集合,它们共享通用的导入路径前缀,也就是所谓的模块路径。模块是进行版本化的单元,模块版本是通过语义化(semantic)版本字符串进行定义的。在使用 Git 进行开发的时候,开发人员通过为模块的 Git 仓库添加标签来定义新的语义化版本。尽管强烈推荐使用语义化的版本,但是依然支持引用特定的提交。

模块是通过go mod创建的,位于模块根目录下的go.mod文件对其进行了定义,该文件列出了所有需要的包及其版本号。例如,下面是一个简单的模块定义,它声明了模块的基础路径以及两个依赖,该模块是通过go mod -init -module example.com/m创建的:

复制代码
<pre data-anchor-id="6kyg">
复制代码
module example.com/m
require (
golang.org/x/text v0.3.0
gopkg.in/yaml.v2 v2.1.0
)
复制代码

存在go.mod文件之后,像go buildgo testgo list这样的命令将会自动添加新的依赖以满足导入的要求。例如,在你的主包中导入rsc.io/quote,然后执行go run将会添加require rsc.io/quote v1.5.2go.mod中。类似的,go get命令会更新go.mod,以便于修改构建中所使用的模块版本,它可能会升级或降级级联依赖。

关于模块语法的更多细节可以通过go help modules来查阅。至少在 Go 1.12 之前,这个特性都将会处于实验性阶段,Go 团队会努力保持兼容性。一旦模块稳定之后,对 GOPATH 的支持将会被移除掉。

支持 WebAssembly 的目标在于让 Go 程序能够在 Web 浏览器中运行。我们可以编译 Go 程序使其能够在 Web 中运行:GOARCH=wasm GOOS=js go build -o test.wasm main.go。这将会生成三个文件:wasm_exec.htmlwasm_exec.jstest.wasm,我们可以将其部署到 HTTP 服务器中或者在浏览器中加载路径。 js 包可以用来进行 DOM 操作。

要了解 Go 1.11 的完整变更,请查阅官方发布说明,通过该网址可以进行下载。

查看英文原文: Go 1.11 Adds WebAssembly, Experimental Module Support, and More

2018-09-04 05:521354

评论

发布
暂无评论
发现更多内容

远景能源java后台开发实习面试题

Java 程序员 后端

适合程序员表白的情话【保你脱单】

Java 程序员 后端

金三银四助力面试-手把手轻松读懂HashMap源码

Java 程序员 后端

逼着面试官问了我ArrayList和LinkedList的区别,他对我彻底服了

Java 程序员 后端

还在傻乎乎得背MyISAM与InnoDB 的区别?一篇文章让你理解的明明白白

Java 程序员 后端

dart系列之:dart语言中的异常

程序那些事

flutter dart 程序那些事 11月日更

我终于知道,中国互联网是怎么弯道超车,干翻美国了!

博文视点Broadview

这400道面试题,决定了你去BAT还是TMD

Java 程序员 后端

这篇Kafka笔记真是写的太好了!不收藏都对不起我的眼睛

Java 程序员 后端

【Flutter 专题】11 图解 ListView 的多种绑定方式

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 11月日更

Vue进阶(幺捌叁):IE9兼容性问题-数据初始化问题

No Silver Bullet

Vue 11月日更

超详细:常用的设计模式汇总

Java 程序员 后端

软考(软件设计师)考点总结 -- 数据库技术

Java 程序员 后端

送给你一份程序员大佬整理的 HTTP 基础知识大图

Java 程序员 后端

拥有一台服务器后,我竟然这么酷?

老表

Python Linux web开发 云服务器 跟老表学云服务器

跨年巨作!13万字!腾讯高工纯手写“JDK源码笔记”直接带你飙向实战

Java 程序员 后端

还在用 Guava Cache?它才是 Java 本地缓存之王!

Java 程序员 后端

还没搞懂Java中的路径?看完这篇文章你就全懂了

Java 程序员 后端

遇到Java内存溢出(OOM)时,这样排查

Java 程序员 后端

重走JAVA之路(五):面试又被问线程池原理?教你如何反击(1)

Java 程序员 后端

重走JAVA之路(五):面试又被问线程池原理?教你如何反击

Java 程序员 后端

这六个 MySQL 死锁案例,能让你理解死锁的原因!

Java 程序员 后端

适合程序员表白的情话【保你脱单】(1)

Java 程序员 后端

超进化!阿里腾讯大佬联合撰写亿级网关、分布式、微服务等太香了!(1)

Java 程序员 后端

超进化!阿里腾讯大佬联合撰写亿级网关、分布式、微服务等太香了!

Java 程序员 后端

【LeetCode】环形链表 II Java题解

Albert

算法 LeetCode 11月日更

软件设计师复习(一)

Java 程序员 后端

近年来面试阿里总结出360道面试题,【Java岗】(JVM

Java 程序员 后端

还在担心面试遇到SpringBoot,莫慌,我送你套神级pdf文档

Java 程序员 后端

透过根源从而探究红黑树的本质,究竟二叉树是什么神仙鬼怪?

Java 程序员 后端

通过AOP和自定义注解实现请求日志收集功能

Java 程序员 后端

Go 1.11添加实验性的WebAssembly、模块等特性_开源_Sergio De Simone_InfoQ精选文章