基本介绍
Golang简称Go,是Google开发的静态强类型、编译型开源编程语言,于2006年1月2日下午15点4分5秒诞生。对于Go语言来说这个时间点尤为重要,迫使着每一位Go语言开发者都必须记住Go语言诞生的准确时间。因为Go语言的时间格式化就是以改时间点为基础的。(其他语言的开发者大部分相比是记不住他们语言的开发时间的)。
Go的语法与C语言相似,与C++相比,增加了GC功能,不支持枚举、泛型、断言等功能。支持接口、切片,字典(map)等功能。
Go语言对于并发编程更加友好,以goroutine(协程)
为基础。goroutine
具有thread的性质,但是比thread更加轻量化。一个线程可以维护上千个goroutine
。同时开启一个Goroutine的消耗非常小,大约为2kb。
发展
排行
TIOBE 最新发布了6月编程语言排行榜中,Golang排名12发展迅速。
效率高
go语言不仅在语法上与C类似,在运行速度上也良好的继承了C的运行效率,可以说是网络时代的C语言。而在开发效率上与python等脚本语言也丝毫不差。
灵活性
Golang支持当前主流的编程范式,如面向对象编程、面向接口编程、函数式编程和过程式编程,能够让程序员各取所需。同时既可以像Java,C一样显式的声明变量类型如var a int
,也可以像Js、python一样对变量直接赋值a:=1
。
并发简单
Golang可以说是为网络编程而生,天然支持大并发环境。它不需要像Java一样继承Thread
或者实现Runnable
才能实现一个线程。只要一个go关键字,就可以启动一个goroutine
。Go语言即支持像Java,python等传统的同步机制如Mutex
,但传统的机制过于复杂。Golang提供了chan
通道为协程通信提供保证,这也是Golang所推荐的。goroutine
的轻量化允许同时开启上千个协程,而Java的内核级线程则要进行大量的上下文切换。可以说Golang天生为大数据、大并发、微服务而上。
全面的标准库
go语言内置的标准库足够优秀,无论是fmt
、http
、json
都提供了支持。而且Golang通过原生的http
包已经可以良好的支持一个web项目。
相信还有更多Golang的优秀特性会在未来的开发过程中被开发者所发现
golang能做什么
区块链
网络编程、web程序
微服务与分布式系统
数据库
优秀的Golang产品
docker:作为程序员不可不知道的产品,将应用利用虚拟化技术运行在Linux等系统,实现应用之间的隔离。
kubernetes:与docker相配合,实现容器化技术
beego:国人开发的web框架
etcd、codis、tidb等的数据存储系统
学习网站
go官方文档
菜鸟教程
go中文社区
佛系更新,有错误下面留言,共同进步