一.Go发展史
想要了解一门语言,少不了他的发展史。
这里简单的介绍一下其历史年度关键节点。
1.里程碑
Go 也叫 Golang
- 起源于2007年
- 2009年首次公开发布
- 2010年谷歌投入使用
- 2011年被Google AppEngine支持
- 2012年正式版Go1
- 2015年发布Go1.5,移除了“最后残余的C代码”
- 目前最新版本为Go1.10
不得不说Go是一门很年轻的语言,是一个零零后。
二.Go特点
我们学习一门语言总归是出于各种各样的原因的,他会是各式各样的原因。
那既然现在我有了一个想要了解 Go 的一个意愿,肯定要先知道该语言有那些特色,或者说有那些吸引人的地方的说。
1.效率高
— 图片来自百度
Go 被誉为“21世纪的 C 语言”。
正如 Go 语言的 Logo 这只萌萌哒短腿儿囊地鼠的寓意一样,Go 语言是很快速的,他的快速体现在两个方面:
- 开发效率高
- 运行速度快
关于究竟是选择开发速度还是执行速度这个问题,Go 选择了折中,他即要开发速度,又要执行速度。
举个青涩的栗子:码的比 C / C++ 快 ,跑得比 Python 快,大致意思是对的,关于更详细的差异需要深入去了解。
2.部署简单
Go 不允许额外的引用,在其编译后生成会生成可执行文件,几乎不需要任何外部依赖
3.并发支持
Go 原生支持并发。
假如我们用 C# (seaconch .net 出身)编写一个多线程的项目,那么我们需要考虑东西会很多,编码起来也会很繁琐。
然而这些对于 Go 来说会是容易很多。
4.编码体验
Go 属于静态语言,是编译型语言,但其构建速度很快,并且有大量的包可以使用。
Go 语言的目标即:将静态语言的安全性和高效性与动态语言的易开发性进行结合
5.代码格式化
通过 Go 的格式化命令(gofmt),可以使代码风格保持统一化,便于阅读。
6.UTF-8编码
Go 完全支持 UTF-8 ,Go 的源码格式即 UTF-8。
7.GC
Go 已经拥有了垃圾回收机制
三.Go缺失
seaconch 已知列举如下:
- 不支持函数(方法)重载
- 不支持隐式转换
- 不支持泛型
- 不支持静态变量
四.适用场景
根据 seaconch 查阅得出相对较多的场景为:
- 网络编程
- 分布式编程
- 服务器编程
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。