提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
Hello Go
学习Go的开端,先从最基本的程序开始,用最基本的语法让Go程序运行起来
一、程序
这就像一个传统,在学习大部分语言之前,你先学会如何编写一个可以输出hello world的程序。
准备好了吗?Let’s Go!
package main
import "fmt"
func main() {
fmt.Printf("Hello, world\n")
}
输出如下
二、详解
首先我们要了解一个概念,Go程序是通过package来组织的
package (在我们的例子中是package main)这一行告诉我们当前文件属于哪个包,而包名main则告诉我们它是一个可独立运行的包,它在编译后会产生可执行文件。除了main包之外,其它的包最后都会生成*.a文件(也就是包文件)并放置在GOPATH/pkg/GOOS_GOARCH中(以Mac为例就是$GOPATH/pkg/darwin_amd64)。
每一个可独立运行的Go程序,必定包含一个package main,在这个main包中必定包含一个入口函数main,而这个函数既没有参数,也没有返回值。
为了打印Hello, world…,我们调用了一个函数Printf,这个函数来自于fmt包,所以我们在第三行中导入了系统级别的fmt包:import “fmt”。
包的概念和Python中的package类似,它们都有一些特别的好处:模块化(能够把你的程序分成多个模块)和可重用性(每个模块都能被其它应用程序反复使用)。我们在这里只是先了解一下包的概念,后面我们将会编写自己的包。
在第五行中,我们通过关键字func定义了一个main函数,函数体被放在{}(大括号)中,就像我们平时写C、C++或Java时一样。
大家可以看到main函数是没有任何的参数的,我们接下来就学习如何编写带参数的、返回0个或多个值的函数。
第六行,我们调用了fmt包里面定义的函数Printf。大家可以看到,这个函数是通过.的方式调用的,这一点和Python十分相似
前面提到过,包名和包所在的文件夹名可以是不同的,此处的即为通过package 声明的包名,而非文件夹名。
总结
Go使用package(和Python的模块类似)来组织代码。main.main()函数(这个函数位于主包)是每一个独立的可运行程序的入口点。Go使用UTF-8字符串和标识符(因为UTF-8的发明者也就是Go的发明者之一),所以它天生支持多语言。