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 内部大规模软件存在的问题,将 解决工程问题 作为设计原则之一。