本文为译文。原文地址:Hello World
这是golang教程系列的第二篇文章。此教程是适用于go v1.13或更高的版本。
最好的方式学习一个编程语言的方式就是动手。
设置开发环境
首先我们先创建一个目录用来写我们的hello world程序。打开终端运行以下命令
mkdir ~/Documents/learngo/
以上命令将会在我们现在的用户目录下创建一个名为learngo的目录。
创建一个go的模块
通常一个go module被用作追踪查看其本身的版本和我们应用的依赖。下一步我们在~/Documents/learngo/ 目录下创建一个叫做learngo的模块。文件内容如下
module learngo
go 1.17
第一行的 module learngo 指定了一个模块名。第二行说明了这个模块中我们使用的go版本。
hello world
在learngo目录下创建一个main.go的文件。输入以下内容
package main
import "fmt"
func main() {
fmt.Println("Hello World")
}
在go中将包含main函数的文件叫做main.go是我们的一个习惯。但是你也可以叫其他的名字。
运行一个go程序
这里有好几种方法去运行一个go程序。让我们来一个一个看。
1、go install
运行go程序的第一种方式就是通过go install命令。让我们先cd到我们刚刚创建的learngo目录
cd ~/Documents/learngo/
然后运行下面的命令
go install
以上命令将会编译程序然后安装(复制)二进制程序资源到~/go/bin 目录。 二进制的名字就是包含main.go 的文件名。在我们的例子中名字就是 lerango.
当你在安装程序的时候可能会遇到下面的错误
go install: no install location for directory /home/naveen/Documents/learngo outside GOPATH
For more details see: 'go help gopath'
上面的错误其实是在说:go install 命令找不到一个地址去安装编译好的二进制文件。所以让我们告诉它一个二进制地址就好了。这个地址我们叫做GOBIN将被用于管理go的二进制环境变量。
export GOBIN=~/go/bin/
上面的命令说明了go install会安装编译好的二进制文件到~/go/bin。一般我们约定将 ~/go/bin作为GOBIN环境变量的值,但是你也可以换成任何你想换的,都可以。现在再运行go install命令程序应该会编译通过同时运行也不会有任何问题了。
你可以在命令行中输入ls -al ~/go/bin/learngo你就可以看见go install实际上在~/go/bin 里都放置了哪些二进制资源了。
现在让我们运行已经编译好的二进制资源
~/go/bin/learngo
以上命令将运行learngo二进制文件,并输出以下内容。
Hello World
恭喜。你已经成功的运行了属于你的第一个go程序了。
假如你不想每次都输入整个~/go/bin/learngo路径。你可以添加~/go/bin/到你的PATH
export PATH=$PATH:~/go/bin
现在你只需要在终端输入learngo 就可以跑起来了。
你可能在思考,当learngo目录里不仅仅有main.go同时还有好多其他文件的时候。go install如何去工作。我们将在后续的 packages and go modules中讨论。
2、go build
运行程序的第二种方式是使用go build。go build与go install唯一的不同就是不会安装二进制资源到GOBIN目录下。它在安装go build的位置创建一个二进制文件。
在终端输入以下命令,切换到目录learngo
cd ~/Documents/learngo/
然后输入下面的命令
go build
以上命令会在当前目录下创建一个名叫learngo的二进制文件。
输入./learngo运行程序。也会打印😊
Hello World
3、go run
在终端输入以下命令,切换到目录learngo
cd ~/Documents/learngo/
然后输入
go run main.go
然后我们就可以看见
Hello World
与go build、go install相比的一个微妙的不同就是。go run参数中需要带.go后缀。
假如你想知道go run编译完成的程序地址,只需要加上--work参数即可。
go run --work main.go
输出如下
WORK=/var/folders/23/vdjz4kt972g5nzr86wzrj9740000gq/T/go-build698353814
Hello World
WORK的值,就是程序编译临时产物的存储目录。
4、go playground
最后一种运行go的一种方式是使用go playground。当我们使用浏览器,不需要安装程序到你的本地的时候这个方法是方便的。虽然这个方法有一些限制。我现在已经创建了一个hello world 程序。点击线上运行程序
你也可以使用go playground和其他人分享你的源代码。
现在我们知道四种不同的方式来运行程序。你可能会问,那我应该用哪种?当我想快速检查我的逻辑对不对或者快速的找一个标准的库函数的时候,我会用go playground。其他情况下我可能会喜欢go install。因为它可以让我在终端的任何目录下运行我的程序。