8小时速成golang(三)Golang语言特性

golang的优势

一、极其简单的部署方式

1、可直接编译成机器码

2、不需要依赖其他库

3、直接运行即可部署

 

二、静态语言类型

可在编译的时候检查出大多隐藏问题

 

三、语言层面的并发

1、天生的基因支持

2、充分利用多核

package main
  
import (
    "fmt"
    "time"
)

func goFunc(i int) {
    fmt.Println("goroutine ", i, " ...")
}

func main() {
    for i := 0; i < 10000; i++ {
        go goFunc(i) //开启一个并发协程
    }

    time.Sleep(time.Second)
}

四、强大的标准库

1、runtime系统调度机制

2、高效的GC垃圾回收机制

3、丰富的标准库

 

五、简单易学

1、25个关键字

2、C语言简洁基因,内嵌C语言语法

3、面向对象特征(封装 继承 多态)

4、跨平台

 

六、大厂领军

谷歌 facebook 腾讯 百度 京东 小米 滴滴 阿里 新浪 字节 bilibili  七牛云 

 

七、Golang适合做什么

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

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

(2)、基础后端软件

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

(3)、微服务

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

(4)、互联网基础设施

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

 

八、golang典型

k8s、 docker

 

九、不足

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

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

 

posted @ 2024-02-11 21:27  陈晓猛  阅读(58)  评论(0)    收藏  举报