在本系列的第一篇文章《Go语言概览》中,对Go语言的发展历程,以及它的优缺点进行了介绍。本文作为《Java程序员学习Go》系列文章的第二篇,将从几个例子开始我们学习Go的旅程。
学习Go语言参考资料
- 书籍
- 《Go语言程序设计》,作者:Mark Summerfield
- 《Go Web编程》,作者:谢孟军——beego作者
官方文档
安装好Go之后,使用如下命令,启动本地Go DOC服务godoc -http=:8080
然后在浏览器中键入http://localhost:8080来访问Go的官方文档
安装Go
下载并安装
下载地址:https://golang.org/
安装说明:https://golang.org/doc/install设置环境变量
至少要设置如下变量:GOROOT ——指向Go的安装目录 GOPATH——指向自己创建的本地程序目录,即工作空间 PATH——包含$GOROOT/bin
检查安装是否成功
命令行中执行go version
能够正常返回你所安装的Go的版本信息,则说明安装成功,如果没有正常显示,先检查PATH环境变量是否正确设置。
第一个例子,Hello World!
在你喜欢的路径下,按照下图创建目录及文件:
其中各目录含义如图中所述。
hello.go源码如下:
//hello.go
package main
import (
"fmt"
"os"
"strings"
)
func main() {
who := "World!"
if len(os.Args) > 1 {
who = strings.Join(os.Args[1:], " ")
}
fmt.Println("Hello", who)
}
有些情况下,上面的代码块无法显示行号,为了照顾这种情况,截个图,方便大家查阅:
对以上代码进行一个解释:
- 第1行
注释,和Java一样,均采用C++风格。//表示单行注释,/**/表示块注释 - 第2行
包名约定为小写字母,go以package为处理单元,Java以Class File为处理单元
包名为main,会编译为可执行文件,否则不会 - 第4-8行
导入其他package,注意括号()和引号“”的使用 - 第10-16行
定义了一个函数,main函数是go程序入口,和Java一样
即main.main()是可执行文件的执行入口
函数体用花括号包围 - 第11行
“:=”快速变量声明,不必声明变量类型,Go会从初始值中判断变量类型 - 第12行
if条件语句,条件不带括号
执行语句用花括号包围 - 最后
表面上用换行和缩进组织代码,但实际上以”;”区别语句,只不过是由编译器自动加上
使用go build
编译,然后执行一下:
当然也可以用另外一个命令 go install
两种命令的不同,大家可以体会一下。
PS:吐槽一下,我习惯用MarkDown来编写博客文章,CSDN的博客恰好也支持MarkDown语法,这个值得表扬。但是我发现用MarkDown写的文章在PC端的格式可以正确显示,但是在手机APP上的显示是没有格式的,处于移动互联时代,这个缺陷不可原谅。(补充:现在再看,手机APP上显示MarkDown格式是正确的了)