作为程序员而言,
往往对于学习新的语言都是有抗拒的
。如果你用惯了
Java
,那么你可能不
太愿意去学
Python
,如果你刚学
C
或者
C++
可能你也会看不上
Java
。因为这个原因还会引发
很多口水仗,这很正常。我当时写
C++
的时候也看不上
Java
,写了
Java
又不想学
Python
,现
在学会了
Python
,有时候也会不想看其他语言写的代码。
但是随着我们的成长和实力的提升,我逐渐发现学习一门语言的
成本在飞快地下降
。毕竟天
下语言都是程序,就好像武侠小说里各门各派的武功眼花缭乱,但是归结起来无非是拳脚功
夫、刀剑或者是内功这么几种。语言也是一样,虽然我会的语言也不够多,远远没达到可以
指点江山的地步。但也发现了很多语言之间的相关性实在是很强,有些理念一脉相承,有些
更像是一个模子里刻出来的。既然如此,我们为什么需要学习
Go
这样一门语言呢?

我个人觉得
Golang
是一门非常有个性的语言,长处与短处都非常的明显。关于它的长处很
多,相比于一一列举出来,在实际学习和运用的过程当中领会到的感受会深得多。
Hello World
学语言第一件事就是敲
Hello World
,我想所有语言都不例外,我们也来看下
Golang
的
Hello
World
,来看下它的基本结构。

我们来简单看下这段代码,可以把这段代码分成三个部分。
最上面的是模块名,也可以说成是包名,然后是引入包的语句。这一块其实没什么好说的,
很多语言都是这样的结果,比如
Java
和
Python
。在
Golang
当中
main package
表示一个独立
的程序
,而不是一个包。在
main package
下的
main
函数代表这个独立程序的执行入口,和
C++
以及
Java
当中的
main
函数比较类似。我们可以在
main
函数里调用其他包的各种函数。
fmt
是
Golang
当中的
标准输出包
,我们调用它来输出我们想打印的东西。
写完了
Hello World
之后就要执行了,
Golang
提供了两种执行方式,一种是直接
go run +
要执
行的文件名。还有一种是和
C++
一样先进行编译,再通过
./
调用编译之后的二进制包。
当然执行之前我们需要在电脑上配置
Golang
的环境,这方面网上的资料很多,并且
Golang
的安装也比较简单,基本上没有什么坑,所以
照着网上的博客安装就好了
。
我们来分别看下这两种调用方式,第一种我们直接使用
go run
执行代码:

还有一种方式是我们先通过
go build
对
Golang
的代码
先进行编译
,会生成一个二进制文件,
之后我们直接
./
运行这个文件。

所以从这里我们可以看出来,
Golang
是编译型语言而不是解释性语言
,因此它的效率会非常
高,实际上由于
Golang
的一些底层设计和特性,
Golang
的运行效率非常高,在绝大多数场
景比
Java
更快,仅仅次于
C++
。
IDE
最后简单聊聊
Golang
的开发环境,其实现在开发环境已经普世化了,很多代码编辑器可以用
来写各种语言。比如业内比较流行的
vscode
,
Atom
,
Sublime
等等,这几种当中我个人最
喜欢
vscode
,功能非常强大,拥有海量的插件支持,并且页面风格和使用体验也不错,并且
还是免费的

另外一个比较常用的是
Goland
,它是
Jet Brains
公司
专门为
Golang
开发的
IDE
。
Jet Brains
公
司专门发开各种语言的
IDE
,几乎每一种语言的
IDE
都广受欢迎。写过
Java
的同学应该对
IDEA
都不陌生,它的体验比
eclipse
要好用得多。同样,
Goland
对于
Golang
的支持也非常
好,使用体验非常棒,而且如果之前用过它家的其他产品会非常适应。
Goland
页面风格以及各方面体验都非常棒,但缺点也很明显,一个是
基本上只支持
Golang
,另一个缺点就是
贵
。免费的社区版要阉割掉一些功能,而专业版则要好几千人民
币。不过如果是学生的话可以免费申请,不得不说还是非常人性化

除了这些之外,还有七牛团队开源的
liteide
,基于
C++ QT
开发,因此执行效率很高,但据说
调试功能不太好用。我也没有用过,感兴趣的小伙伴可以试试。
