本文最初发表在我的个人博客,欢迎查看原文:
blog.favorstack.io/golang
上一篇文章介绍了Go代码的组织结构及一些基本概念,下面将以github.com/favorstack
作为基路径,在工作空间中创建一个目录来保存源代码,介绍一下基本的语法。
一 第一个程序
Hello world程序
1). 创建基路径:
$ mkdir -p $GOPATH/src/github.com/favorstack
或者:
$ mkdir -p ~/go/src/github.com/favorstack
2). 新建一个工程目录go-example
:
该目录可以作为git仓库的根目录:
$ cd $GOPATH/src/github.com/favorstack && mkdir go-example
3). 在上述目录下创建hello
目录:
$ cd go-example && mkdir hello
4). 在hello
目录下新建一个hello.go
文件:
$ cd hello && vi hello.go
然后输入以下代码:
package main
import "fmt"
func main() {
fmt.Println("Hello World!")
}
5). 保存退出。
6). 编译执行
在第一篇文章中我们已经使用过go build
命令了,这次我们直接安装到$GOPATH
目录的bin
下:
执行go install
命令编译并安装:
$ go install
没有任何信息输出则表示编译没问题。
直接执行~/go/bin
下的命令,需要将该目录添加到$PATH
环境变量中,如果你还没有加上,现在是个好机会,可以参考上一篇文章。
没问题的话,我们可以看到可执行程序已经编译好并安装在~/go/bin
目录下了,直接执行hello
命令即可(Windows下是hello.exe
):
$ hello
Hello World!
上面省略了包路径,只能在当前目录下执行。如果加上包路径,则可以在任意位置执行:
$ go install github.com/favorstack/go-example/hello
在不指定包路径时,go install
会从当前目录查找源代码,而指定包路径后,会从$GOPATH
指定的位置查找github.com/favorstack/go-example/hello
包的源代码,所以在指定了包路径后,无需在当前目录下执行安装命令。
另外,源代码文件未改变(MD5值未改变)的情况下,多次执行
go isntall
所编译安装的可执行程序并不会发生改变,实际上,go甚至并未进行新的编译而是直接复制的第一次编译后的结果,你可以对目标文件执行MD5值校验多次编译的结果来验证这一点。
代码解释
1.go源文件后缀必须以.go
结尾:
例如hello.go
2.go代码的第一行有效(非注释)代码总是以包的声明开始:
例如package main
3.包的声明语法:
package 包名
包名
即为在其他模块导入时使用的名称,同一个包下的所有源文件必须使用相同的包名。包名应该尽量简短,简洁,好记,按照约定,所有包名使用小写字母,且使用单个单词表示,不需要使用下划线或大小写混合的方式。
在Go语言中,有用的文档