Go 语言形态
Go 语言是一门静态编译型的语言,而不是动态解释型的。这样设计的原因是为了尽可能获得最佳的运行性能。并且Go语言的编译速度非常快,明显要快过其他同类的语言,比如 C 和 C++。
关于编译型和解释型语言的区别以及动态和静态型语言的区别查看这个链接:https://www.jianshu.com/p/2d1b03bf28dd
Go 语言编译器
你如果看了前面的扩展阅读,便会知道编译一个编译性的语言需要编译(compile)和连接(linker)两个步骤。
Go 语言的官方编译器被称为 gc ,包括编译工具 5g 、6g 和 8g ,链接工具 5l 、6l 和 8l,以及文档查看工具 godoc(在Windows下分别是5g.exe、6l.exe等)。这些古怪的命名习惯源自于 Plan9 操作系统,例如用数字来表示处理器的架构( 5 代表 ARM,6 代表包括 Intel64 位处理器在内的 AMD64 架构,而 8 则代表Intel386)。幸好,我们不必担心如何挑选这些工具,因为Go语言提供了名字为 go 的高级构建工具,会帮我们处理编译和链接的事情。
比如:
$ go build
$ go run
关于 Plan9 操作系统是什么,可以看这个链接:https://www.jianshu.com/p/aec92c1efea1
一些 Go 语言文档
官方文档
Go语言的官方网站是 golang.org,包含了最新的Go语言文档。因为一些众所周知的原因,google 也开放了一个对于中国开发者的 Go 语言网站 golang.google.cn。
网站里的 Packages 链接对Go标准库里的包做了详细的介绍,还提供了所有包的源码。Documents 链接有一些 Go 语言的教学和详细的语法规范。The Project 链接则是交代了 Go语言的历史以及如何为 Go 语言贡献力量。
此外, Go 语言官网还特地为读者准备了一个沙盒(Sandbox),你可以在这个沙盒中在线编写、编译以及运行Go小程序(有一些功能限制)。
构建本地 web 服务器查看官方文档
要在本地查看,需要运行 godoc 工具,运行时可以选择性提供一个端口。
$ godoc //这时地址会默认为 localhost:6060
或者
$ godoc -http=localhost:8000
吐槽:官方完全可以把这个命令简化成 godoc -http=8000
。而且,在终端运行完这条命令之后,完全没有任何提示。
当然在本地运行的 web 服务器是没有提供沙盒的功能的。
我们也可以在终端中使用go doc
(中间有空格)命令来查看整个包或者包中某个特定功能的文档。例如
$ go doc image NewRGBA
会输出关于函数 image.NewRGBA() 的文档。
func NewRGBA(r Rectangle) *RGBA
NewRGBA returns a new RGBA image with the given bounds.
执行 $ go doc image/png
命令会输出关于整个 image/png 包的文档。
package png // import "image/png"
Package png implements a PNG image decoder and encoder.
The PNG specification is at https://www.w3.org/TR/PNG/.
func Decode(r io.Reader) (image.Image, error)
func DecodeConfig(r io.Reader) (image.Config, error)
func Encode(w io.Writer, m image.Image) error
type CompressionLevel int
const DefaultCompression CompressionLevel = 0 ...
type Encoder struct{ ... }
type EncoderBuffer encoder
type EncoderBufferPool interface{ ... }
type FormatError string
type UnsupportedError string
有疑问加站长微信联系(非本文作者)