Go语言简介

我为什么学习Go这门语言?

背景:

我身边有位朋友一直和我说:"go语言很好,真的很好呀,很容易上手的,性能又好,又很轻便,要不要一起学呀?"。

经过:

我简单地翻看了菜鸟教程,对go有了初步了解,确实和朋友描述的一致,仿佛打开了新世纪的大门,感觉这门语言很适合我这种嫌麻烦的懒人,初步对这门语言有了一定的兴趣。

结果:

偶然有一天,看了一篇关于2019年最值得学习的语言TOP3里面又提到了GO语言,并且讲述了当前这个语言的受欢迎程度和普及度越来越高,越来越多的开发者和企业开始使用该语言,就这样,坚定了我学习go语言的决心。

 

一、什么是go语言

Go(又称Golang)语言是Google公司开发的一种静态型、编译型并自带垃圾回收和并发的编程语言。

官网: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、高性能,语言性能上和java相近,但在某些方面表现方面不如java

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

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

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

9、代码风格清晰、简单:

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语言的强大调试器,被很多集成环境和编辑器整合

 

本篇文章主要对go语言进行简单的介绍,包括其历史、特点及其在实际项目中的使用,下篇文章将和大家介绍go语言的开发环境的搭建。

 

 

 

 

 

 

 

 

 

 

  • 25
    点赞
  • 64
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值