初识GO语言(第一天)

GO语言介绍

Go(又称Golang)语言是Google公司开发的一种静态型、编译型并自带垃圾回收和高并发的编程语言。
2019年最值得学习的语言TOP3的GO语言,并且预计以后后台服务器很可能就是GO语言,目前有一些大公司在招聘GO语言开发工程师。
官网:https://golang.org/

历史概要:

(1)于2007年9月由罗伯特·格瑞史莫,罗勃·派克(Rob Pike)及肯·汤普逊开始设计,稍后Ian Lance Taylor、Russ Cox加入项目

(2)于2009年11月正式宣布推出,并成为开放源代码项目,因此Go开发团队将 2009 年 11 月 10 日(即该语言正式对外开源的日子)作为其官方生日,并在Linux及Mac OS X平台上进行了实现,后来追加了Windows系统下的实现

(3)2012年3月28日正式发布go1.0版本

(3)2016年,Go被软件评价公司TIOBE 选为“TIOBE 2016 年最佳语言”

(4)如今,Go每半年发布一个二级版本(即从a.x升级到a.y),现最新版本为Go1.12(于2019/02/25发布)

go语言特点

1、上手快,语法简单

2、编译输出可执行文件,go语言可以直接输出为目标平台的原生可执行文件,此外,go语言还可以编译输出能导入c语言的静态、动态库,同时go1.7版本开始,go语言支持将代码编译成插件。

3、工程结构简单,无须头文件,编译文件均来自于后缀名为go的源码文件,无须解决方案、工程文件、Make File等,只要将工程文件按照GOPATH的规则进行填充即可。

4、编译速度快,go语言利用自己的特性实现并发编译,最开始并发编译的最小元素是包,从go1.9版本开始,最小并发编译元素缩小到函数,整体编译速度提高20%,而且由于其工程结构的简单,在很大程度上加速了编译的过程。

5、高性能,高性能(如C/C++),超级好用的并发处理(如Java)和简洁的代码(如Python/Perl)

6、原生并发支持,无须第三方库,go语言的并发基于goroutine,类似于线程,但并非线程,可以理解为一种虚拟线程。go语言运行时会合理参与调度goroutine,并将goroutine合理分配到各个cpu中,最大限度地使用cpu性能

7、性能分析,安装go语言的开发包后,使用go语言的工具链可以直接进行go语言的代码性能分析

8、强大的标准库,生态环境稳定,涵盖网络、系统、加密、编码、图形等方面

9、代码简单
没有类。
Go只有结构体而不是类。
不支持继承。
没有构造函数。
无注解(annotation)。
没有泛型(generics)。
没有异常。
举列子:
1)去掉循环冗余的括号

for(int i = 0; i < 10; i++) {

}

=>

for i := 0; i < 10; i++ {

}

2)去掉表达式冗余的括号

if (i > 0) {

}

=>

if i > 0 {

}

3)强制的代码风格,左括号必须紧接语句不换行,具体如1)、2),否则视为代码编译错误,此外,go语言还提供了一套代码格式化工具

4)不用再纠结于i++和 ++i,对于go语言而言,自增操作不再是一个操作符,而是一个语句,因此go语言中只有i++一种写法。

使用go语言的项目

1、Docker,是一种操作系统层面的虚拟化技术,可以在操作系统和应用程序之间进行隔离,也可以称之为容器。

2、golang,也就是go,go早起源码由c和汇编进行编写,从1.5版本自举后,完全使用go语言自身进行编写。

3、kubernetes,google公司构建于docker之上的容器调度服务。

4、etcd,一款分布式、可靠的kv存储系统

5、beego,一个极轻量级、高伸缩行和高性能的web应用框架

6、martini,一款快速构建模块化的web应用的web框架

7、codis,国产的优秀分布式redis解决方案

8、delve,go语言的强大调试器,被很多集成环境和编辑器整合

总结:语言没有好坏,有优点便也存在缺点,就像在上班的早高峰,我更喜欢自行车,但是出去爬山,或者回老家那么就没办法自行车了

引用一句话:
在这里插入图片描述

发布了205 篇原创文章 · 获赞 47 · 访问量 26万+

猜你喜欢

转载自blog.csdn.net/qq_32744005/article/details/104865425