第一个Go程序
go version //查看golang 版本 go build //编译源码文件
package main //和Java一样 表示代码所属的包import "fmt" //和Java一样 导入代码依赖//程序主入口函数func main() {fmt.Printf("Hello World!")}
go build编译后,程序主入口有3个条件。
- 必须属于main包 :package main
- 必须是main函数: func main()
- 文件名不一定是main.go
在Java语言中package的声明必须和源码文件的所在目录保持一致,在golang中源码文件可以在任意包存在。
**
与其他编程语言的差异
退出返回值
go语言main函数不支持任何返回值
func main must have no arguments and no return values
os.Exit()来返回状态
package main //和Java一样 表示代码所属的包import ("fmt""os") //和Java一样 导入代码依赖//程序主入口函数func main() {fmt.Println("Hello World!")os.Exit(12)//可以使用异常值来传递返回值}
获取命令行参数
main函数不支持传入参数
func main(arg []string)
在程序中直接通过os.Args获取命令行参数
package mainimport ("fmt""os")//程序主入口函数func main() {if len(os.Args)>1 {fmt.Println(os.Args[1])//打印控制台传入的参数}}
测试

package includeimport ("testing") //和Java一样 导入代码依赖func TestFibList(t *testing.T) {var a int =1var b int =1t.Log(a)for i:=0;i<5;i++ {t.Log(" ",b)temp :=a //把a临时存起a=b //修改ab=temp+a //修改b}}

一、Go语言简介
Go(又称 golang)是 Google 开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。

GO语言的开发阵营可以说是空前强大,主要成员中不乏计算机软件界的历史性人物,对计算机软件的发展影响深远。Ken Thompson,来自贝尔实验室,设计了B语言,创立了Unix操作系统(最初使用B语言实现),随后在Unix开发过程中,又和Dennis Ritchie一同设计了C语言,继而使用C语言重构了Unix操作系统。Dennis Ritchie和Ken Thompson被称为Unix和C语言之父,并在1983年共同被授以图灵奖,以表彰他们对计算机软件发展所作的杰出贡献。Rob Pike,同样来自贝尔实验室,Unix小组重要成员,发明了Limbo语言,并且和Ken Thompson共同设计了UTF-8编码,《Unix编程环境》、《编程实践》作者之一。
可以说,GO语言背靠Google这棵大树,又不乏牛人坐镇,是名副其实的“牛二代”。
Go语言经典项目

大名鼎鼎的Docker,完全用GO实现,业界最为火爆的容器编排管理系统kubernetes,完全用GO实现,之后的Docker Swarm,完全用GO实现。除此之外,还有各种有名的项目如etcd/consul/flannel等等,均使用GO实现。有人说,GO语言之所以出名,是赶上了云时代,但为什么不能换种说法,也是GO语言促使了云的发展?
除了云项目外,还有像今日头条、UBER这样的公司,他们也使用GO语言对自己的业务进行了彻底的重构。
