Golang入门笔记-CH01-Go语言介绍与安装

  1. 1. Go 语言介绍
  2. 1.1 Go 语言的发展
  3. 1.2 Go 语言的特点
  4. 1.3 Go 语言的不足
  5. 2. 安装 Go 语言
  6. 2.1 Windows 下安装 Go 语言
  7. 2.1 Linux 下安装 Go 语言

1. Go 语言介绍

1.1 Go 语言的发展

Go 语言又称 Golang,起源于 2007 年,来自于谷歌内部的一个项目,于 2009 年正式对外发布。创始团队有三人,都是计算机界的大佬:

  • Robert Griesemer:参与开发 Java HotSpot 虚拟机
  • Rob Pike:Go 语言项目总负责人,贝尔实验室 Unix 团队成员,参与的项目包括 Plan 9,Inferno 操作系统和 Limbo 编程语言
  • Ken Thompson:C 语言、Unix 和 Plan 9 的创始人之一

Go 语言是开源的,通过开源社区的力量得到了快速发展,越来越多的开发者开始使用 Go 语言。自 Go 语言发布以来,超过 200 名非谷歌员工贡献者对 Go 语言核心部分提交了超过 1000 个修改建议。在过去的 18 个月里,又有 150 开发者贡献了新的核心代码。

根据 TIOBE 2020 年 8 月份的编程语言排行榜,Go 语言位列第 11 位。

TIOBE 2020 年 8 月份的编程语言排行榜

国内也有很多大厂在用 Go 语言,包括腾讯、阿里、百度、B 站、知乎等,我们可以看到 Go 语言的潜力还是非常大 的。

1.2 Go 语言的特点

Go 语言的主要特点有:

Go 是一门系统编程语言,由于它高性能,高并发,高开发效率的特性,特别适合开发 Web 服务器,存储集群和高性能分布式系统。

  • 语法简洁

    Go 语言被誉为 21 世纪的 C 语言,可想而知,Go 语言的语法和 C 语言类似,都是 C 系的语言。但它又和 C 语言不一样,它结合了其他动态语言的特性,语法和结构上较 C 更加简练。

    Go 没有类和继承的概念,通过 interface 接口来实现多态,在语言体系复杂度上较 C / C++ 低了不少。

    Go 将 ++-- 从运算符降级为语句,保留了指针,但默认阻止指针运算,一定程度上降低了出错的可能性。

    Go 仍采用花括号来区分代码块,但强制第一个花括号不能换行,第二个花括号必须换行;Go 语言中编写 iffor 等条件和控制语句时,可以省略括号;Go 语言单行语句末尾无需加分号;这些硬性编码要求虽然牺牲了一些自由度,但增强了代码的规范性。

  • 静态语言

    Go 是一门静态强类型语言,和 python 、javascript 等动态语言不同,每个变量声明时必须指定类型,声明后就无法更改其类型。

    Go 和 C / C ++ 一样,需要经过编译才能运行,编译期间能帮我们发现更多的错误。

  • 性能良好

    Go 语言性能良好,和 Java 是一个梯队的,比 python、php 等动态语言好很多。

    C++ 虽然性能优异,但编译速度较慢,Go 语言从设计之初,就考虑到了这个问题,因此 Go 语言的编译速度很快,常规项目编译只需数秒。

  • 垃圾回收

    Go 和 Java 一样,自带垃圾回收,用户不需要手动释放指针,只需把重心关注在业务层面上即可。虽然 Go 的垃圾回收器现在还不完美,但每一个大版本的发布, Go 语言团队都在不断地改进垃圾回收算法。期待未来 Go 语言的垃圾回收能更上一层楼。

  • 并发模型

    并发是 21 世纪编程的流行词,也是难题。而 Go 语言天生支持并发,Go 通过 Goroutine 类协程的方式来处理并发单元,同时通过 channel 来实现各个 Goroutine 之间的通信,将并发单元间的数据耦合拆解开来。在语法上无需关注回调和执行切换,让并发编程更加简单高效。

    并发是 Go 重要特性之一,弥补了现有编程语言并发方面的不足,也符合未来计算机向多处理器和多核心发展的趋势。

  • 交叉编译

    Go 支持交叉编译,也就是跨平台编译,我们可以在 Windows上编译出能在 Linux 上运行的可执行文件。

    Go 在编译时会把所有运行时、依赖库打包到可执行文件内部,只需一个可执行文件即可部署,降低了代码泄露风险,简化了部署操作。

归纳起来就是快速编译,高效执行,易于开发

1.3 Go 语言的不足

  • 不支持函数重载和操作符重载
  • 不支持隐式转换
  • 非面向对象设计,不支持类和继承
  • 不支持动态加载代码
  • 不支持动态链接库
  • 缺少系统的异常处理机制,通过 recoverpanic 来代替异常机制
  • 不支持静态变量

2. 安装 Go 语言

2.1 Windows 下安装 Go 语言

image-20200822155047544

  • 下载好之后,点击安装包安装。

    image-20200822161448729

    image-20200822161517999

    image-20200822161552262

    image-20200822161623803

    image-20200822161705703

    image-20200822161846263

  • 安装完成后,按住 Windows + R 键,输入 cmd ,点击确定进入 cmd 界面。

    image-20200822162037480

  • 在 cmd 界面输入 go version,若能成功显示 go 的版本号,则表明安装成功。

    image-20200822162212336

2.1 Linux 下安装 Go 语言

  • 打开终端,在终端输入 wget -c https://studygolang.com/dl/golang/go1.15.linux-amd64.tar.gz,下载 Go 语言安装包。

    image-20200822162740856

  • 将安装包解压到 /usr/local

    1
    sudo tar -zxvf go1.15.linux-amd64.tar.gz -C /usr/local
  • vim 打开 ~/.bashrc 配置文件:

    1
    vim ~/.bashrc
  • 在配置文件中写入 Go 环境变量:

    将光标移动到文件末尾,然后按下 i 键,进入 INSERT 模式。

    image-20200822164708262

    写入 Go 环境变量相关内容,GOROOT 表示 Go 的安装路径,PATH 用于保存环境变量:

    1
    2
    export GOROOT=/usr/local/go
    export PATH=$PATH:$GOROOT/bin

    接下来保存文件,先按 Esc 键退出 INSERT 模式,然后输入 :wq ,最后按 Enter 按键即保存成功。

    image-20200822165238575

  • 在终端输入 source ~/.bashrc ,使得环境变量生效。

    image-20200822165407845

  • 检查环境变量是否生效,在终端输入 go version,若出现版本号表明安装成功。

    image-20200822170118205


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 richffan@outlook.com

文章标题:Golang入门笔记-CH01-Go语言介绍与安装

字数:1.6k

本文作者:Rich Fan

发布时间:2022-10-01, 00:00:00

最后更新:2024-02-27, 08:17:39

原始链接:http://fanrich.github.io/2022/09/30/Golang/Golang%E5%85%A5%E9%97%A8%E7%AC%94%E8%AE%B0-CH01-Go%E8%AF%AD%E8%A8%80%E4%BB%8B%E7%BB%8D%E4%B8%8E%E5%AE%89%E8%A3%85/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。