学习教程:Go Web编程.pdf,点击免费下载。
学习视频:网易的云课堂:Go编程基础
Go基础系列文档更多的是记录我的学习点滴,增强自己的学习效果,可能是很基础的东西,希望别喷我哦。
在上一篇Go环境安装我们成功安装了Go环境,接下来的一步就是写一个hello world的程序感受感受下Go语言的魅力。
上一篇Go环境安装中,我们设置了GOPATH的工作目录,先来看看我的目录结构。
jindg@nc:~/goWorkProjects/goPath$ tree
.
├── bin//(存放编译后生成的可执行文件)
│ └── helloworld//本文的小程序go install生产的可执行文件
├── pkg//(存放编译后生成的包文件)
└── src//(存放项目源码)
└── helloworld//本文要讲的helloword小程序工程
└── helloworld.go
上面的目录结构应该不难看出我是在GOPATH下的src目录中建我工程。
先来看看hellowold.go源码
package main
import "fmt"
func main() {
fmt.Print("hello world! Go!")
}
go程序的一般结构:
- 通过package来组织的,package main这一行告诉我们当前的文件属于哪个包,编译后会生成*.a文件,并放在
$GOPATH/pkg/$GOOS_$GOARCH
文件夹中;如果为main包,则告诉我们它是一个可独立运行包,编译后会产生可执行文件。
备注:如果将上面package后面的main改为test_main,函数main改为test_main。当前目录执行go install。然后再来看看pkg的目录结构:
├── pkg
│ └── linux_amd64
│ └── helloworld.a//与go源文件所在文件名相同,所以我们一般建议package后面的包名跟所在文件名保持一致
- 每个可独立运行的Go程序,必定包含一个package main,咋换个main包中必定包含一个入口函数main,且这个函数没有参数,也没有返回值。这点跟C、java不一样哎。
- 我们需要用到某个包的函数时,必须import它,helloworld用到的fmt包的Print函数,因此需要import “fmt”;但是如果用不到某个包,Go绝不允许import它,否则会编译会报错,这~~~,要求的确严,不过也有好处,不该用的包本身就不应该impot,程序就应该有严谨性。
- fun关键字指示这是一个函数,main函数中调用了fmt包的Print函数。
本文的知识点:
1. 工程目录结构
2. pkg包的生成以及包名跟文件名、package 包名三者的联系
3. 入口函数main
4. fun关键字