文章目录
导言运行第一个程序搭建开发环境Hello World运行程序方法1 --- `go install`方法2 --- `go build`方法3 --- `go run`方法4 --- `Go Playground` (需要翻墙)
对 `hello world`程序 的简短解释
原作者留言最后
导言
原文链接: Hello WorldIf translation is not allowed, please leave me in the comment area and I will delete it as soon as possible.
运行第一个程序
学习编程,一定要动手!!! 接下来,我们来写第一个 Go 程序~
搭建开发环境
先来创个目录,我们将在这个目录下写 hello world程序。
打开终端,运行下面的命令:
mkdir ~/Documents/learngo/
通过上面的命令,我们能在 ~/Documents路径 下,创建一个名为 learngo 的目录。注意:learngo目录 不一定非要创建在这个路径。
Hello World
在 learngo目录 下,创建一个 main.go文件,并写入以下内容:
package main
import "fmt"
func main() {
fmt.Println("Hello World")
}
在 Go 中,包含 main函数 的文件一般命名为 main.go。当然,其它名字也可以。
运行程序
运行 Go程序 有很多种方法。我们一个接一个地看。
方法1 — go install
请在命令行中,cd 进入 刚刚创建的 learngo目录。
cd ~/Documents/learngo/
接下来,运行下面的命令:
go install
上面的命令会先编译程序,之后将编译完成的二进制文件放在 ~/go/bin目录 中。该二进制文件的名字,等于包含 main.go文件 的文件夹名。对我们来说,它的名字就是 learngo。
当你执行命令时,你可能遇到下面的错误:
go install: no install location for directory /home/naveen/Documents/learngo outside GOPATH
For more details see: 'go help gopath'
上面错误的意思是:go install 不知道将二进制文件放在哪里。
所以,接下来,我们给 go install 一个安装位置。
由于该位置由 GOBIN环境变量 管理,所以我们可以键入以下命令:
export GOBIN=~/go/bin/
上面的命令指明:go install 应该把编译完成的二进制文件,放到 ~/go/bin/ 中。~/go/bin/ 是存放 Go二进制文件 的常规位置,当然,你也可以选择其他位置。
接下来,重新执行 go install命令,你会发现错误消失了。
你可以在终端中,执行 cd ~/go/bin/ 命令切换到对应目录,之后使用 ls 命令,你会发现:该目录有个名为 learngo 的二进制文件。
接下来,我们运行编译好的二进制文件:
~/go/bin/learngo
你会看到如下输出:
Hello World
如果你不想每次都输入 ~/go/bin/learngo 去运行 learngo,你可以将 ~/go/bin 加入到 PATH 中。
export PATH=$PATH:~/go/bin
现在,你只需在终端中输入 learngo,程序就能运行了。
你可能想知道:假如 learngo目录下 包括了多个 go文件,这种情况下,go install 还能正常运行吗?别激动,我们将在之后讨论这个问题。
方法2 — go build
go build 和 go install 非常像,但是 go build 不会将 编译完成的二进制文件 放在 ~/go/bin/目录,而是将它放在当前目录。
请在终端中,输入并执行下面的命令:
cd ~/Documents/learngo/
此时,我们就进入了 learngo目录。
接下来,执行下面的命令:
go build
该命令会创建一个名为 learngo 的二进制文件,并将其放在当前目录。
你可以使用 ls -al命令 进行验证。
接下来,键入 ./learngo命令 运行这个程序,程序输出如下:
Hello World
通过 go build,我们也成功运行了 hello world程序。
方法3 — go run
在命令行中,执行 cd ~/Documents/learngo/命令。此时,我们就进入了 learngo目录。
接下来,执行下面的命令:
go run main.go
输入后,你马上就能看到如下输出:
Hello World
go run 和 go build / go install 的区别在于:go run 需要一个参数,该参数是一个以 .go 为后缀的文件名。
在后台,go run 和 go build 的工作方式非常相似。不过,go run 不是将 编译后的二进制文件 放在当前目录,而是将它放在一个临时位置,之后通过该临时位置,执行二进制文件。
如果你想知道 go run 的临时位置,你可以在go run 后加个 --work参数。
go run --work main.go
运行上述的命令,输出为:
WORK=/var/folders/23/vdjz4kt972g5nzr86wzrj9740000gq/T/go-build698353814
Hello World
WORK的值就是临时位置了。
对该例子来说,编译完成的二进制文件将被放在:
/var/folders/23/vdjz4kt972g5nzr86wzrj9740000gq/T/go-build698353814/b001/exe
方法4 — Go Playground (需要翻墙)
运行 Go程序 的最后一个方法,就是使用 Go Playground。虽然这种方法有些局限性,但是对于运行简单程序来说,它非常有用。
这种方法用到了浏览器,所以我们可以不用在本地安装 Go。通过 Go Playground,我们还能将代码分享给别人。
对于上面的 4 种方法,我们应该怎么选择呢? 这个问题的答案是:没有答案,看你自己的心情。
对我来说,当我想快速检查程序逻辑、或者想知道标准库函数的工作方式时,我一般使用会 Go Playground。对于其它情况,我倾向于使用 go install。因为 go install 会把所有程序编译到 ~/go/bin目录,所以无论终端在哪个目录,我都能运行程序。
对 hello world程序 的简短解释
这是我们刚刚写的 hello world程序:
package main
import "fmt"
func main() {
fmt.Println("Hello World")
}
下面,我简单说说程序的每一行都做了什么:
package main — 每个 go文件 必须以 package name语句 开头。 包 (package) 能提高代码的独立性、可重用性。在这里,我们的包名是 main,main函数 只能在 main包 中。 import "fmt" — 用于导入其它包。 在例子中,我们导入了 fmt包,因为我们用到了它的 Println函数,该函数的功能是:将文本打印到标准输出。 func main() — func关键字 是函数开始的标志。 main函数 是一个特别的函数,因为它是程序执行的起点。{、} 指明了 main函数 的开始、结束。 fmt.Println("Hello World") — 调用 fmt包 的 Println函数。 package.function() 是调用包内函数的句式。
这就是今天的内容了~
祝你天天有刨冰吃~
原作者留言
上面的代码都能在 github 下载。
优质内容来之不易,您可以通过该 链接 为我捐赠。
最后
感谢原作者的优质内容。
欢迎指出文中的任何错误。