Go 语言基础 - 基础语法|青训营笔记

14 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第1天

39.jpg

什么是Go语言?

Go语言是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言,它融合了C语言、Java等众家之长,将简洁、高效演绎得淋漓尽致。

特点及优势

优势:

  1. 自动垃圾回收降低了开发难度。Go语言的现代化垃圾回收机制显著地降低了开发难度,把无趣的内存管理交给专业的编译器去做,在其他语言(如C或C++)中则不行。
  2. 更丰富的内置类型。使用Go语言,开发者“不用再费事添加依赖的包”,既减少了输入工作量,又可以让代码更简洁。
  3. 支持函数多返回值。Go语言的多返回值功能让开发者既不用再只为了返回多个值而专门定义一个数据结构,也不用再区分参数列表中哪些用于输入,哪些用于输出。
  4. 漂亮的错误处理。与C++和Java等语言中的异常捕获机制相比,Go语言的错误处理机制可以大量减少代码量,开发者无需再仅为了程序安全而添加大量的try-catch语句。
  5. 匿名函数和闭包。Go语言支持常规的匿名函数和闭包。
  6. 简洁的类型和“非侵入式”接口。最基本的类型组合功能使Go语言依然能够实现C++和Java使用复杂的类型系统才能实现的功能。
  7. 并发编程更轻盈更安全。Golang非常适合用来做网络并发方面的服务,比如消息推送、监控、容器等。

劣势:

  1. 软件包版本管理不完善。Go语言没有制定特定版本的依赖库,在不同时间构建时,创建的生成可能会基于不同版本的包。在这方面,Go语言还无法与Python、Java等语言的软件包管理系统相媲美。
  2. 错误信息难获得。开发者不能从函数上知道下层函数可能返回哪些类型的错误,很容易丢失错误发生的范围,难以提供有效的错误信息。

全面拥抱Go语言的原因

  • 最初使用的python,由于性能原因换成了Go
  • c++不太适合在线web业务
  • 早期团队非Java背景
  • 性能比较好
  • 部署简单、学习成本低
  • 内部rpc和HTTP框架的推广