当前位置: 首页 > news >正文

Golang语言特性

1.Go语言的优势

1.1极简单的部署方式
—可以直接编译成机器码。代码可以直接转换为二进制数据,在操作系统上可以直接./去执行。
—不依赖其他库。最终生成的可执行程序是一个静态的二进制文本文件。
—可以直接运行即可部署。
—静态类型语言。编译的时候检查出来隐藏的大多数问题。

1.2语言层面的并发。
<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.3强大的标准库
—runtime系统调度机制。
—高效的GC垃圾回收机制。
—丰富的标准库。

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明星作品

4.Golang的不足

1、包管理,大部分包都在github上。私人的包,不稳定。

2、无泛化类型(Golang 1.18+已经支持泛型)

3、所有Excepiton都用Error来处理(比较有争议)。Java全部error都捕获。

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

相关文章:

  • C语言:51单片机 常用电子元器件讲解(带英文名称)
  • Java-servlet(一)Web应用与服务端技术概念知识讲解
  • Linux top 常用参数记录
  • 扫描局域网可用端口
  • 【计算机网络入门】初学计算机网络(五)
  • 常见的 Spring 项目目录结构
  • MAC OS安装Python教程
  • C++编程指南21 - 线程detach后其注意变量的生命周期
  • JavaScript异步处理确保排序不乱的方案
  • 16981等腰三角形
  • Difyにboto3を変更したカスタムDockerイメージの構築手順
  • Java 8 新特性
  • 2024蓝桥杯省赛真题-封闭图形个数
  • 蓝桥杯备考:从记忆化搜索到动态规划
  • 深入解析 Spring WebFlux:原理与应用
  • 链表OJ(十二)23. 合并 K 个升序链表 困难 优先级队列中存放指针结点
  • 什么是预训练语言模型下游任务?
  • 16.3 LangChain Runnable 协议精要:构建高效大模型应用的核心基石
  • LeetCode 27 移除元素
  • Linux(centOS) 命令提示符格式修改(PS1)
  • 焦点访谈丨售假手段又翻新,警惕化肥“忽悠团”的坑农套路
  • 冒充现役军人、自称有中国兵工集团投资内幕,2人被刑拘
  • 外媒称北斗挑战GPS地位,外交部:中国的北斗也是世界的北斗
  • 黄仁勋:美国芯片管制完全错误,阻碍别人发展只会激励他们更努力
  • 财政部:今年将和住建部选拔第二批20个城市,高质量推进城市更新行动
  • 中国戏剧梅花奖终评结果公示,蓝天、朱洁静等15名演员入选