Go 概述

Go 是一款开源的、静态强类型的、编译型、并发支持优秀的、支持自动内存管理的编程语言。

一、什么是 Go?

Go 是非常年轻的一门语言,它的主要目标是 兼具 Python 等动态语言的开发速度和 C/C++ 等编译型语言的性能与安全性

Go 是一款开源的、简洁、静态强类型的、编译型、并发支持优秀的、支持自动内存管理的编程语言。

二、Go 的特点

1. 简单

Go 并不想做一款强大的编程语言,而是希望做一门 简单 的编程语言。

2. 显式

  • 以类型转换为例,Go 中并不支持隐式类型转换,而是需要程序员手动进行显式转换
  • 以错误处理为例,Go 并不支持类似 throw 的将异常直接向上抛出的方式,而是采用了显式的基于值比较的错误处理方案,要求程序员手动对错误做出处理

这些都是 Go 显式设计哲学的体现, Go 希望程序员能够明确自己在做什么

3. 组合

Go 遵循 合成复用原则(优先使用对象组合,而不是通过继承来达到复用的目的),它并没有传统面向对象语言中的继承机制,而是通过 类型嵌入(即组合)的方式实现 “能力” 的扩展。

4. 并发

Go 将 面向多核、原生支持并发 作为设计原则之一,他主要做了几个事情:

  • 放弃传统的基于操作系统线程的并发模型,转而开销更低的用户层轻量级线程
  • 提供了 channel,实现消息传递或同步
  • 提供了 select,实现更简单的并发控制

5. 面向工程

Go 的设计初衷就是解决现实世界中 Google 内部大规模软件存在的问题,将 解决工程问题 作为设计原则之一。

参考