This is the second article in the "Golang Tutorial Series". If not, you may want to take a look at our previous tutorial Golang introduction and environment installation to understand what Golang is and how to download Golang.
This tutorial is based on Go 1.16 or above.
There is no more effective way to learn a programming language than to have your hands covered in the blood of code. Let's start our first Go program together. (First Blood)
Let us first create a folder to write the hello world program. Please open the command line and run the following command:
mkdir ~/Desktop/learngo/
The above command will create a folder named learngo
on the user's desktop (the translator's development environment is Macbook Pro). You can create directories and write code anywhere.
Use your favorite text editor to create a file called ## in the learngo
folder #main.go file and write the following content:
package main import "fmt" func main() { fmt.Println("Hello World") }
在 Go 中将包含 main
函数的文件命名为 main.go
是约定俗称的,但是其他名称也是可以使用。
有几种不同的方式来运行 Go 程序。让我们一一看一下。
go install
第一个运行 Go 程序的方法是使用 go install
命令。让我们来使用 cd
命令进入刚创建的 learngo
目录
cd ~/Desktop/learngo/
接着运行下面的命令。
go install
上面的命令将编译当前程序并将其安装(拷贝)二进制可执行文件到 ~/go/bin
目录。二进制可执行文件的名字是包含 main.go
文件的文件夹名。在我们示例中,它将被命名为 learngo
。
当你尝试安装程序时,你可能会遇到以下错误。
go: cannot find main module; see 'go help modules'
上面的错误实际上意味着,go install
无法找到 main 模块,这是因为我们没有初始化 go modules,我们使用以下命令初始化模块:
go mod init github.com/youngjuning/learngo
上面的命令会在 learngo
目录下创建一个 go.mod
文件,该文件是程序模块定义的地方,作用类似于 Node 的 package.json
文件。然后我再执行 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 GOPATH=~/.go export PATH=${PATH}:$GOPATH/bin
现在你可以在命令行中只输入 learngo
来运行程序。
You may be wondering what happens when the learngo
directory contains multiple Go files instead of just main.go
. How would go install
work in this case? Read on as we discuss these as we look at packages and Go modules.
#The second option to run the program is to use go build
. go build
is very similar to go install
, except that it does not install (copy) the compiled binaries to the path ~/go/bin/
, instead create the binary file in the same folder as go build
:
在命令行输入以下命令来切换当前目录到 learngo
:
cd ~/Desktop/learngo/
然后输入下面的命令:
go build
上面的命令将会在当前目录下创建一个名为 learngo
的二进制可执行文件。ls -al
命令可以证实名为 learngo
的文件被创建了。
输入 ./learngo
来运行程序,将会输入和前面一样的内容:
Hello World
到此,我们用 go build
也成功地运行了我们的第一个 Go 程序 ?
第三个运行程序的方法是使用 go run
命令。
在命令行输入 cd ~/Desktop/learngo
命令来改变当前目录为 learngo
。
然后输入以下命令。
go run main.go
输入以上命令后,我们也可以看到一样的输出:
Hello World
go run
命令和 go build
或 go install
命令之间的一个细微差别是,go run
要求使用 .go
文件的名称作为参数。
在引擎盖下,go run
的工作原理与 go build
非常相似。无需将程序编译并安装到当前目录,而是将文件编译到一个临时位置并从该位置运行文件。如果你想知道 go run
将文件编译到的位置,请使用 --work
参数运行 go run
。
go run --work main.go
在我的场景中,运行以上命令会输出下面的内容:
WORK=/var/folders/mf/_fk8g5jn23gcw970pypqlv4m0000gn/T/go-build3519209434 Hello World
WORK
的值表示程序将被编译到的一个临时位置。
就我的场景而言,程序被编译到 /var/folders/mf/_fk8g5jn23gcw970pypqlv4m0000gn/T/go-build3519209434
。这可能因你的情况而异 ?
运行程序的最后一种方法是使用 go playground。尽管此方法有一些限制,但由于我们可以使用浏览器并且不需要在本地本地安装 Go:我已经为 Hello World 程序创建了一个 playground。点击此处 以在线运行该程序。
你还可以使用 Go Playground 与他人分享你的源代码。
既然我们知道 4 种不同的方式来运行程序,那么你可能会很困惑该使用哪种方法。答案是,当我想快速检查逻辑或找出标准库函数如何工作时,通常使用 playground。在大多数其他情况下,我更喜欢 go install
,因为它为我提供了从终端中任何目录运行程序的选项,因为它将所有程序编译到标准的 ~/go/bin/
路径。
这是我们刚刚创建的简单的 hello world 程序:
package main import "fmt" func main() { fmt.Println("Hello World") }
我们将简要讨论该程序的每一行的作用。在接下来的教程中,我们将深入研究程序的每个部分。
「package main」 - 每个 go 文件都必须以 package name
开始。Packages 用于提供代码分隔和可重用性。此处使用包名称 main
。主要功能应始终保留在 main package 中。
『import "fmt"』 - import
statement is used to import other software packages. In our case, the fmt
package is imported, which will be used in the main
function to print text to standard output.
『func main()』 - func
The keyword marks the beginning of the function. main
is a special function. The program starts execution from the main
function. Braces {
and }
indicate the beginning and end of the main
function.
『fmt.Println("Hello World")』 - fmt
The PrintIn
function of the package is used to write text to standard output. package.function()
is the syntax for calling functions in a package.
The above is the detailed content of 'Go Language Tutorial Series' Hello World. For more information, please follow other related articles on the PHP Chinese website!