image.png

第一个Go程序

go version //查看golang 版本 go build //编译源码文件

  1. package main //和Java一样 表示代码所属的包
  2. import "fmt" //和Java一样 导入代码依赖
  3. //程序主入口函数
  4. func main() {
  5. fmt.Printf("Hello World!")
  6. }

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()来返回状态

  1. package main //和Java一样 表示代码所属的包
  2. import (
  3. "fmt"
  4. "os"
  5. ) //和Java一样 导入代码依赖
  6. //程序主入口函数
  7. func main() {
  8. fmt.Println("Hello World!")
  9. os.Exit(12)//可以使用异常值来传递返回值
  10. }

**

获取命令行参数

main函数不支持传入参数

func main(arg []string)
在程序中直接通过os.Args获取命令行参数

  1. package main
  2. import (
  3. "fmt"
  4. "os"
  5. )
  6. //程序主入口函数
  7. func main() {
  8. if len(os.Args)>1 {
  9. fmt.Println(os.Args[1])//打印控制台传入的参数
  10. }
  11. }


测试

image.png

  1. package include
  2. import (
  3. "testing"
  4. ) //和Java一样 导入代码依赖
  5. func TestFibList(t *testing.T) {
  6. var a int =1
  7. var b int =1
  8. t.Log(a)
  9. for i:=0;i<5;i++ {
  10. t.Log(" ",b)
  11. temp :=a //把a临时存起
  12. a=b //修改a
  13. b=temp+a //修改b
  14. }
  15. }

image.png

一、Go语言简介

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

ArMRBf.jpeg
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语言经典项目

y22mmq.jpeg
大名鼎鼎的Docker,完全用GO实现,业界最为火爆的容器编排管理系统kubernetes,完全用GO实现,之后的Docker Swarm,完全用GO实现。除此之外,还有各种有名的项目如etcd/consul/flannel等等,均使用GO实现。有人说,GO语言之所以出名,是赶上了云时代,但为什么不能换种说法,也是GO语言促使了云的发展?

除了云项目外,还有像今日头条、UBER这样的公司,他们也使用GO语言对自己的业务进行了彻底的重构。

Go 语言的使用场景

为什么要学习 Go 语言

文档