更多关于Go的知识

    我们可以使用官方Go SDK中的命令来运行单元测试和基准测试。测试源文件名必须以_test.go结尾。官方Go SDK也支持程序性能分析。请阅读下列文章获取详情:

    gccgo

    gccgo是Go核心团队维护开发的另一款Go编译器。它的主要目的是为了验证标准编译器(gc)的正确性。我们可以在go rungo build和等命令中使用选项-compiler=gccgo来指定使用gccgo编译器。此选项需要安装gccgo软件包才能起作用。gccgo命令也可。

    Go汇编

    Go函数可以使用Go汇编语言来编写。Go汇编是一种跨平台(尽管并非100%)的汇编语言。Go汇编汇编常用来实现一些对性能要求很高的函数。

    更多详情,请阅读下列文章:

    cgo

    通过cgo机制,我们可以在Go代码中调用C代码,或者反之。请阅读下列链接获取详情:

    注意,cgo的使用将给跨平台Go项目的维护开发带来一些麻烦。另外Go和C之间互调不如Go-Go和C-C调用高效。

    编译标签(build constraint/tag)

    我们可以使用来让编译器选择性地忽略某些源文件。选择标签可以出现在源代码文件中的最顶部,也可以出现在源代码文件名(不包含后缀)的结尾(并用下划线分隔开来)。

    标准Go编译器支持若干编译器指示。一个编译器指示以注释的形式//directive args出现。我们常常使用编译器指示来生成代码。

    系统调用

    go/*标准库包

    go/*标准库包提供Go源文件解析相关的功能。这些库包对于开发各种Go源代码分析工具很有帮助。请阅读Go代码分析和来获取如何使用这些库包中提供的功能。

    官方Go SDK中的go build命令支持更多的编译模式。运行go help buildmode可以列出所有支持的模式,或者查看官方文档来查看这些模式的解释说明。除了最常用的default模式,plugin(插件)模式可能是另一种用的较多的模式。我们可以使用中的函数来加载和使用Go插件。

    Go语言101项目目前同时托管在Github和上。欢迎各位在这两个项目中通过提交bug和PR的方式来改进完善Go语言101中的各篇文章。

    本书微信公众号名称为"Go 101"。每个工作日此公众号将尽量发表一篇和Go语言相关的原创短文。各位如果感兴趣,可以搜索关注一下。