1. Golang语言特性:
-
垃圾回收:
1.内存自动回收,再也不需要开发人员管理内存;
2.开发人员专注业务实现,降低了心智负担 ;
3.只需要new分配内存,不需要释放 -
天然并发:
1.从语言层面支持并发,非常简单;
2. goroute,轻量级线程,创建成千上万个goroute成为可能;
3.基于CSP(Communicating Sequential Process)模型实现 -
channel:
1.管道,类似unix/linux中的pipe;
2. 多个goroute之间通过channel进行通信;
3.支持任何类型//比如: func main() { pipe := make(chan int,3) pipe <- 1 pipe <- 2 }
-
多返回值:
1.一个函数返回多个值;
//比如: func calc(a int, b int)(int,int) { sum := a + b avg := (a+b)/2 return sum, avg }
2. Golang语言环境搭建:
Golang语言环境搭建可参考:在IntelliJ idea上安装Go语言的开发环境 (在IDEA中配置 ‘go1.12.5’ 最新版本的插件)
3. 第一个Go程序:
package main
import(
“fmt”
)
func main() {
fmt.Println(“hello world”)
}
4. 包:
1. 包的概念
- 和python一样,把相同功能的代码放到一个目录,称之为包;
- 包可以被其他包引用;
- main包是用来生成可执行文件,每个程序只有一个main包;
- 包的主要用途是提高代码的可复用性
golang目前有150个标准的包,覆盖了几乎所有的基础库,golang.org有所有包的文档。