1. 垃圾回收python
a. 内存自动回收,不再须要开发人员管理内存linux
b. 开发人员专一业务实现,下降了心智负担golang
c. 只须要new分配内存,不须要释放并发
2. 自然并发函数
a . 从语言层面支持并发,很是简单线程
b. goroute,轻量级线程,建立成千上万个goroute成为可能unix
c. 基于CSP(Communicating Sequential Process)模型实现blog
func main() { go fmt.Println(“hello") }
3. channel ip
a . 管道,相似unix/linux中的pipe内存
b. 多个goroute之间经过channel进行通讯
c. 支持任何类型
func main() { pipe := make(chan int,3) pipe <- 1 pipe <- 2 }
4. 多返回值
a. 一个函数返回多个值
func calc(a int, b int)(int,int) { sum := a + b avg := (a+b)/2 return sum, avg }
1. hello world,在目录下新建hello.go
package main import( “fmt” ) func main() { fmt.Println(“hello world”) }
1. 和python同样,把相同功能的代码放到一个目录,称之为包
2. 包能够被其余包引用
3. main包是用来生成可执行文件,每一个程序只有一个main包
4. 包的主要用途是提升代码的可复用性
1. calc目录
2. 在calc目录下新建calc.go
package calc func Add(a int, b int) int { return a + b }
3. 修改hello.go代码,以下
package main import( “fmt” “calc” ) func main() { sum := calc.Add(3,5) fmt.Println(“hello world,%d”,sum) }