《Go语言教程系列》介绍和环境安装Go主题月

大家好,我是 @洛竹

本文首发于 洛竹的官方网站

本文翻译自 Part 1: Introduction and Installation

本文同步于公众号洛竹早茶馆,转载请联系作者。

这是我们 Golang 教程系列中的第一篇教程。本教程介绍了 Go,并讨论了选择 Go 而不是其他编程语言的原因。我们还将学习如何在 Mac OS,Windows 和 Linux 中安装 Go。

介绍

Go 也被称为 Golang,是 Google 开发的一种开源、编译和静态类型的编程语言。Go 创作背后的关键人物是 Rob Pike,Ken Thompson 和Robert Griesemer。Go于2009年11月公开发布。

Go 是一种通用的编程语言,语法简单并具有强大的标准库作为后盾。Go 大放异彩的关键领域之一是创建高可用性和可伸缩性的 Web 应用程序。Go 还可以用于创建命令行应用程序、桌面应用程序甚至移动应用程序。

Go 的优势

当大量其他语言(例如python,ruby,nodejs ...)可以实现相同需求时,为什么选择 Go 作为服务器端编程语言。

这里是我选择 Go 时发现的一些优点。

简单的语法

语法简单明了,并且该语言不会因不必要的功能而显得臃肿。这使得编写可读性和可维护性的代码变得容易。

易于编写并发程序

并发是语言的固有部分。直接的影响是编写多线程程序变得简直小菜一碟。这是通过 Goroutines 和管道实现的,我们将在接下来的教程中对其进行讨论。

编译语言

Go是一种编译语言。源代码被编译为本地二进制文件。 解释语言(例如,nodejs 中使用的 JavaScript 和 Python)缺少此功能。

快速编译

Go编译器非常神奇,并且从一开始就被设计为快速的。

静态链接

Go 编译器支持静态链接。整个 Go 项目可以静态链接到一个大型的二进制文件中,并且可以轻松部署在云服务器中,而不必担心依赖关系。

Go 工具链

工具在 Go 中值得特别提及。Go 附带了功能强大的工具,可以帮助开发人员编写更好的代码。常用的工具有:

  • gofmtgofmt 是用于自动格式化 go 源代码的。它使用制表符进行缩进,并使用空格进行对齐。
  • vetvet 分析 go 源代码并报告可能的可疑代码。vet 报告的所有内容都不是真正的问题,但具有捕获编译器未报告的错误的能力,例如使用 Printf 时格式说明符不正确。
  • golint:golint 用于识别代码中的样式问题。

垃圾回收

Go 使用垃圾回收,因此内存管理几乎会自动执行,开发人员无需担心内存管理问题。 这也有助于轻松地编写并发程序。

简单语言规范

语言规范非常简单。 整个规范只有一个页面,你甚至可以使用它来编写自己的编译器 🙂

开源

最后但并非最不重要的一点是,Go 是一个开源项目。 你可以参与 Go 项目并为该项目做出贡献。

使用 Go 构建的热门产品

以下是一些使用 Go 构建的流行产品。

  • Google 使用 Go 开发了 Kubernetes using。
  • Docker, 世界上最著名的容器平台是使用 Go 开发的
  • Dropbox 已将其性能敏感组件从 Python 迁移到 Go。
  • Infoblox的 下一代网络产品是使用 Go 开发的。

安装

Go 可以安装在 Mac,Windows 和 Linux 这三个平台上。你可以从golang.org/dl/ 下载对应平台的二进制文件。

Mac OS

golang.org/dl/ 下载 Mac OS 安装程序。双击开始安装。按照提示进行操作,这会将 Golang 安装在 /usr/local/go 中,并且还将文件夹 /usr/local/go/bin 添加到 PATH 环境变量中。

Windows

golang.org/dl/ 下载 MSI 安装程序。双击开始安装,然后按照提示进行操作。 这会将Go安装在位置 c:\Go,还将目录 c:\Go\bin 添加到你的路径环境变量中。

Linux

golang.org/dl/ 下载 tar 文件并将其解压缩到 /usr/local

/usr/local/go/bin 添加到 PATH 环境变量中。这将在 Linux 中安装 Go。

验证安装

要验证 Go 安装是否成功,请在终端中键入命令 go version,它将输出已安装的 Go 版本。这是我终端的输出。

$ go version
go version go1.16 darwin/amd64
复制代码

在编写本教程时,1.16 是 Go 的最新版本。这证明 Go 已成功安装。在下一个教程中,我们将在 Go 中编写第一个 Hello World 程序 🙂

请提供你宝贵的反馈和意见。谢谢阅读。