Go 环境搭建
根据平台环境在官网下载最新版本安装包即可,然后配置环境变量:GOPATH,GOROOT
官网教程:golang.org
第一句代码
package main import ( "fmt" ) func main(){ fmt.Println("hello, golang~") }
Go 语言特性
垃圾回收
- 内存自动回收,不需要开发人员进行内存管理
- 专注业务实现,降低心智负担
- 只需要 new 分配内存,不需要释放
天然并发
- 从语言层面上支持并发,非常简单
- goroute 轻量级线程,创建成千上万个 goroute 成为可能
- 基于 CSP(Communicating Sequential Process)模型实现
channel
- 管道,类似于 unix / linux 中的 pipe
- 多个 goroute 之间通过 channel 进行通信
- 支持任何类
func main(){ pipe := make(chan int, 2) pipe <- 1 pipe <- 2 }
多返回值
一个函数多返回值
package main import ( "fmt" ) func calc(a int, b int) (int, int) { sum := a + b avg := (a + b) / 2 return sum, avg } func main(){ sum, avg := calc(100, 200) fmt.Println("sum", sum, "avg", avg) }
包的概念
- 和 python 一样,把相同功能的代码放在一个目录,称之为包
- 包可以被其它包引用(包内文件中定义的函数名首字母需大写,否则不能被其它包应用)
- main 包用来生成可执行文件,每个程序只有一个 main 包
- 包的主要作用是提高代码的可复用性
作业
使用 fmt 分别打印字符串,二进制,十进制,十六进制,浮点数