Go是一门编译型语言,Go语言的工具链将源代码及其依赖转换成计算机的机器指令2。Go语
言提供的工具都通过一个单独的命令 go 调用, go 命令有一系列子命令。最简单的一个子命
令就是run。这个命令编译一个或多个以.go结尾的源文件,链接库文件,并运行最终生成的可
执行文件。
执行go文件:
1 | go run file_name.go |
如果不只是一次性实验,你肯定希望能够编译这个程序,保存编译结果以备将来之用。可以
用build子命令:
1 | go build helloworld.go |
这个命令生成一个名为helloworld的可执行的二进制文件3,之后你可以随时运行它4,不需任
何处理。
可以从gopl.io网站上本书源码仓库
里获取代码:
1 | go get gopl.io/ch1/helloworld |
在当前目录下得到bin和src文件
1 | package main |
上述语句的输出结果本来应该是hello eatrice,但是执行结果却没有任何显示。这充分显示了Go语句的并发性,Go函数执行与其他的语句是并发,由于Go包装过程需要时间,所以,在main函数完成之前,Go语句还没来得及执行,就已经退出main函数了,因此执行没有结果。
通过对比下列的代码,我们可知,可采用runtime.Gosched()方式来保证Go语句的运行,。
1 | package main |
输出是hello eatrice
1 | package main |
输出是:hello harry
参考:
Go语言圣经
Go并发编程实战