学习编程,一定要动手!!!
接下来,我们来写第一个 Go
程序~
先来创个目录,我们将在这个目录下写 hello world
程序。
打开终端,运行下面的命令:
mkdir ~/Documents/learngo/
通过上面的命令,我们能在 ~/Documents
路径 下,创建一个名为 learngo
的目录。注意:learngo
目录 不一定非要创建在这个路径。
在 learngo
目录 下,创建一个 main.go
文件,并写入以下内容:
package main
import "fmt"
func main() {
fmt.Println("Hello World")
}
在 Go
中,包含 main
函数 的文件一般命名为 main.go
。当然,其它名字也可以。
运行 Go
程序 有很多种方法。我们一个接一个地看。
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
还能正常运行吗?别激动,我们将在之后讨论这个问题。
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
程序。
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
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 下载。
优质内容来之不易,您可以通过该 链接 为我捐赠。
感谢原作者的优质内容。
欢迎指出文中的任何错误。