三、Golang语言特性

1、Golang的优势

3-golang优势1.png


7-golang优势2.png

6-golang优势2.png


5-golan优势1.png

  1. package main
  2. import (
  3. "fmt"
  4. "time"
  5. )
  6. func goFunc(i int) {
  7. fmt.Println("goroutine ", i, " ...")
  8. }
  9. func main() {
  10. for i := 0; i < 10000; i++ {
  11. go goFunc(i) //开启一个并发协程
  12. }
  13. time.Sleep(time.Second)
  14. }

8-golang优势3.png


9-golang优势4.png

10-golang优势5.png


11-golang优势6.png


12-golang优势7.png

2、Golang适合做什么

(1)、云计算基础设施领域

代表项目:docker、kubernetes、etcd、consul、cloudflare CDN、七牛云存储等。

(2)、基础后端软件

代表项目:tidb、influxdb、cockroachdb等。

(3)、微服务

代表项目:go-kit、micro、monzo bank的typhon、bilibili等。

(4)、互联网基础设施

代表项目:以太坊、hyperledger等。


3、Golang明星作品

13-golang优势8.png

14-golang优势9.png

15-golang优势10.png

4、Golang的不足

1、包管理,大部分包都在github

2、无泛化类型

3、所有Excepiton都用Error来处理(比较有争议)。

4、对C的降级处理,并非无缝,没有C降级到asm那么完美(序列化问题)