本文是「vangoleo的Go语言学习笔记」系列文章之一。 官网: http://www.vangoleo.com/go/go-hello-world/golang
在上一篇文章你好,Go语言中,咱们对Go语言的历史和特色有了认识。接下来,咱们就正式进入Go的学习了。 按照大部分编程语言的惯例,咱们以经典的“Hello World”开始Go语言的学习之旅。编程
经典的“Hello World”案例来自于1978年出版的C语言圣经<The C Programming Language>。很巧合的是该书的做者Brian W. Kernighan也是《Go语言圣经》一书的做者。浏览器
本教程中,我会使用最方便的方式Golang Playground来体验Go语言。在浏览器中打开https://play.golang.org,在页面直接编写Go代码,并运行。使用Golang Playground无需安装Go,无需配置Golang的开发环境(好比环境变量),无需安装文本编辑器或IDE。编程语言
大部分的Hello World教程都会从如何安装Go,配置环境变量等开始。可是Go语言的安装和开发环境配置实际上是一个比较复杂的话题。我但愿在你们刚接触Go语言时,能对go语言有一个快速,直观的认识。而不要陷入如何配置Go的开发环境。配置Go的开发环境涉及到Go语言的另外两个概念:GOPATH和Go module。而这又会牵扯到Go语言混乱、悠久的依赖管理发展史。后续会有专门的章节来进行介绍。编辑器
第一步:打开https://play.golang.org,在编辑框中输入Hello World程序:函数
package main import "fmt" func main() { fmt.Println("Hello world") }
以下图所示: 第二步:点击“Run”按钮,能够看到程序的输出结果“Hello,world”。 恭喜你,已经编写了第一个Go程序,并正确地输出告终果。工具
虽然Hello World程序很简单,可是依然包含了Go语言的一些核心概念。接下来,咱们就一行一行地解读Hello World程序。学习
第一行:package main
程序的第一行声明了名为main的package。Go语言的代码是经过package来组织的,package的概念和其余语言里的package,module概念相似,是一个逻辑的,包含了相同功能代码的集合。一个package会包含一个或多个.go
源代码文件。每个源文件都是以package开头。好比咱们的例子里是package main。这行声明语句表示该文件是属于哪个package。code
须要注意,package main是一个比较特殊的package。main package是Go程序的入口。准确说,Go程序的入口是名为main的package中的main方法(即例子中的main方法)。blog
第二行: import
package声明语句后紧跟着是import语句。import语句会引入其余package到当前文件中,这样就能够在当前文件使用其余package中的变量,常量,类型,方法等。Go的import和Java的import,C++的include相似。 Go标准库已经提供了100多个package,fmt
这个package包含接受输入,格式化输出的各类函数。Println
是其中的一个经常使用函数,能够格式化地输出一段文本。
第三行: func main
第三行声明了一个函数,函数名为main。在Go语言中使用func
关键字来声明一个函数。格式为:
func 函数名(参数名1 参数类型1, 参数名2 参数类型2, ... ) 返回类型1, 返回类型2, ...
好比下面的方法:
func sayHello(name string, age int) string
声明了一个sayHello方法。接收两个参数:string类型的name和int类型的age。并返回一个string类型的值。 前面也提到了,在main这个package里,main函数也是一个特殊的函数,这是整个程序的入口(其实C系语言差很少都是这样)。
第四行: fmt.Println
第四行是程序真正执行的逻辑,会输出“Hello world”。fmt是经过import引入的包,是go标准库提供的包。Println是fmt包中定义的一个方法,做用是将文本输出到标准输出。
经过Hello world,咱们能够发现Go语言的一些特色:
还有一些Go的特色,因为Hello world程序比较简单,没有体现出来。这里也顺带说一下:
var name string
。这和C系语言,Java语言都不一样。gofmt
工具会将你的代码格式化为标准格式(这个格式化工具没有任何能够调整代码格式的参数,Go语言就是这么任性),规定一种标准的代码格式能够规避掉无尽的无心义的圣战(撕逼)(也致使了Go语言的TIOBE排名较低,由于缺乏撕逼的话题)。Go的这种哲学能够保证当一个大团队一块儿开发和维护一个项目时,团队间的协做更加地标准,高效。本文由 www.vangoleo.com 发布