day001:一起认识 Go语言

一、Go语言简介

1.1、历史背景介绍:

了解过Google公司的文化的你,想必也知道20%工作时间里所创造出的互联网产品,例如:谷歌新闻(Google News)、谷歌地图(Google Map)、语音服务(Google Now)等等。然而,我们要学习的Go语言,其实也是Google工程师们,利用他们20%的工作时间所开发的一门新型语言,并且是2007年诞生的。经过10多年的发展,在云计算或区块链方面,有着显著的优势,并在2016年被评为年度最佳语言,比如你所知道的Docker和Kubernetes都是由Go语言开发。

那么,你可能会好奇,这么一门优秀的语言,到底是由那几位大神人物开发的呢?下面让我们一探究竟。

三位Go语言的创始人

Go语言是由Google的罗伯特·格瑞史莫(Robert Griesemer)罗勃·派克(Rob Pike)肯·汤普逊(Ken Thompson)这三位大牛人物开发的一种静态强类型编译型语言。

Ken Thompson简介:C语言主要发明人,发明了后来衍生出C语言的B程序语言,并在1983年获得图灵奖,也在1998年获得了美国国家技术奖,最重要的是他还是UNIX原创者之一。

Rob Pike简介:是贝尔实验室UNIX、Plan9操作系统成员之一,并在职场上与Thompson共事多年,共同发明了UTF-8字元编码。

Robert Griesemer简介:是开发Java HotSpot编译器、Chrome浏览器的JavaScript引擎V8的主要贡献者。

1.2、Go语言定位及设计哲学

Go = C + Python,这个公式,有趣的解开了Go语言的定位及特性。Go语言是基于编译、垃圾收集和并发的静态强类型的编程语言,专门为多处理器系统应用程序的编程设计的,使用Go语言编译的程序可以媲美于C/C++代码的速度,而且它更加安全和健壮,并且支持并行进程。

Go语言的设计哲学,就一句话:少就是多,少就是少(Less is more or less is less。换句话说就是,将简单、实用体现得淋漓尽致。作为21世纪的C语言,不仅拥有C语言的简洁和性能,更重要的是还提供了服务端开发的各种实用特性。就如Go语言之父的罗勃·派克曾说,你是否同意Go语言,取决你是否认可Go语言的设计哲学。


二、Go语言的特性

2.1、Go语言特性

1、垃圾回收机制:这个机制最大的好处就是,无须开发人员考虑内存泄漏的问题,因为,Go语言设置了垃圾回收机制,实现了内存自动回收功能。

2、语言层面支持并发,实现简单:这点最主要的是,Go语言创新的引进了协程(goroute)这个概念,可以实现大并发处理,高效利用了多核,其背后的底层逻辑就是,它基于CSP(Communicating Sequential Processes)并发模型实现。

3、Go语言特有的通道通信机制(channel):其主要作用就是,通过通道可以实现不同协程(goroute)之间的相互通信。

4、提供了丰富的标注库:到目前为止,Go语言已经内置了大量的库,尤其是网络编程库非常大。

5、函数允许返回多个值,并新增了一些特性功能,例如切片(slice)、延迟执行(defer)等等。

6、引入包的概念,主要用于组织程序结构,一个文件归属一个包,并且不能单独存在。

7、借鉴了C语言的很多理念,包括表达式语法、控制结构、指针、数据结构等等。

8、对其他库的不依赖,可直接编译成机器码,但是,对glibc版本有一定的要求,上线部署时只需要将源码打包成文件就可以运行了。

2.2、注意要点

1、Go语言源码文件,是以.go作为文件扩展名,并且源码中的代码严格区分大小写,以及一行代码只能代表一个语句,如果多个语句写在同一行,就会编译报错。

2、程序只有一个主要入口,那就是main()方法表示,并且不支持任何返回值和参数传入。

3、定义的变量或导入的包,如果在编码中未使用定义的变量或导入的包,程序就会提示错误。


三、Go语言编程和VSCode环境配置

3.1、选择开发环境的原则

一般我们在选择Go语言的开发环境时,尽量不要选择最新的版本,而是往后推1~2个版本,例如,当前的版本是1.20,那么我就应该选择1.18版本的,因为稳定胜过一切。还有一点就是,根据我们的开发需要,选择需要的版本,比如,要使用到新特性的泛型,就不能选择1.16前的版本,而是选择1.18以后得版本。

3.2、Go语言的下载与安装

以Windows为例,在浏览器访问https://golang.google.cn/dl/,单击Windows的下载链接,浏览器自动下载MSI安装包,如图3-1所示。

图3-1 下载Go语言MSI安装包

注意的是,我们要根据自己电脑的操作系统的位数,下载对应的32位或64位的安装包。

将下载好的MSI安装包,双击,勾上协议,点击下一步(next)【如图3-2】,然后选择位置(建议是安装到统一文件中,比如:D:\Develop\Go,最好不是中文或空格的路径),最后直到完全安装。

图 3-2 Go环境安装步骤(一)

图 3-2 Go环境安装步骤(二)

在Windows11系统上的任务栏上,点击搜索path,进入环境变量配置中,在系统环境中,配置GOROOT、GOPROXY和GOPATH,三个环境变量。其中GOPROXY可以配置阿里云或华为云。具体操作可以参考Go语言环境配置

VSCode的安装,也很简单,傻瓜式安装即可。

VSCode的Go语言环境配置,首先,在插件中搜索Go插件并安装,同时也建议,安装Outline Map,这个主要是方便查看Go语言的源码。在编写Go语言代码时,VSCode会弹出一些编写程序要用的执行工具,比如:dlv、gopls、goimports等等。这时,需要选择install all选项,就不必一个一个的安装了。具体操作教程可以参照VSCode配置Go语言环境教程

3.3、第一个Go程序“Hello World”

package main

import "fmt"

func main() {
    fmt.Println("Hello World")
}

综合分析上述代码,可以知道Go语言的代码基本结构如下:

1、package main代表程序或项目运行的主入口文件,如果改为package test,则设为程序或项目的包。

2、import "fmt"代表导入内置包fmt,主要功能是实现数据的标准化输出。

3、func main(){}代表程序运行的主入口,并且不支持任何返回值和参数传入。

在VSCode中,按F5键,就可以看到运行的结果,当然也可以,在命令行中,运行go run main.go就可以看到运行结果了。如图3-3所示。

图 3-3 运行go语言代码命令


四、小结

Go是Google的Robert Griesemer、Rob Pike及Ken Thompson这三位大牛开发的一种基于编译、垃圾收集和并发的静态强类型编译型语言。专门为多处理器系统应用程序的编程设计和优化,使用Go语言编译的程序可以与C/C++代码的速度媲美,而且更加安全,支持并行进程,编写的程序也更加健壮。

在开发过程中,我们必须遵守Go语言的基本开发注意事项:

1)Go语言的源码文件以.go作为文件扩展名,并且代码中严格区分大小写,值得注意的是一行代码代表一个语句,不能把多个语句写在同一行,否则程序编译会报错。

2)程序的主入口以main()方法表示,重要的是不支持任何返回值和参数传入。

3)定义的变量或导入的包在代码中必须被使用,否则程序出现错误提示。

安装包官方下载地址为https://golang.org/dl/,我们可以在https://golang.google.cn/dl/下载安装包。

如果你也喜欢Go语言,也热衷于使用Go语言开发,欢迎关注@Gopher,让我们一起成为哪个了不起的Gopher!!!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值