每种编程语言都需要一个开发环境,Go 也不例外。如果你已经编写了一两个 Go 程序,那么你就已经有了一个工作环境,但你可能已经错过了一些更新的技术和工具。如果这是你第一次在电脑上安装 Go,不用担心;安装 Go 及其支持工具非常简单。设置环境并验证后,您将构建一个简单的程序,了解构建和运行 Go 代码的不同方法,然后探索一些能让 Go 开发更轻松的工具和技术。
要编译 Go 代码,您需要下载并安装 Go 开发工具。您可以在 Go 网站的下载页面找到最新版本的工具。选择适合您平台的下载并安装。Mac 的 .pkg 安装程序和 Windows 的 .msi 安装程序会自动将 Go 安装到正确的位置,移除任何旧的安装程序,并将 Go 二进制文件放到默认的可执行路径中。
如果你是 Mac 开发者,可以使用 Homebrew 安装 Go,命令为 .Go.NET Framework 3.0。使用 Chocolatey 的 Windows 开发者可以使用命令 golang .
各种 Linux 和 BSD 安装程序都是压缩后的 TAR 文件,会扩展到一个名为 go 的目录。将该目录复制到 /usr/local,并将 /usr/local/go/bin 添加到你的文件中,这样就可以访问该命令了:
你可能需要 root 权限才能写入 /usr/local。如果命令失败,请使用 sudo tar -C /usr/local -xzf go1.20.5.linux-amd64.tar.gz 重新运行。
Go 程序编译成一个本地二进制文件,运行时不需要安装任何其他软件。这与 Java、Python 和 JavaScript 等需要安装虚拟机才能运行程序的语言截然不同。使用单个本地二进制文件可以让用 Go 编写的程序更容易发布。使用 Docker 或 Kubernetes 的开发者通常可以将 Go 应用程序打包到一个从头开始或无发行版的镜像中。
您可以打开终端或命令提示符并键入,以验证环境设置是否正确:
$ go version
如果一切设置正确,打印出来的内容应该是这样的:
go version go1.20.5 darwin/arm64
这说明这是 MacOS 上的 Go 1.20.5 版本。(达尔文是 macOS 的核心操作系统,arm64 是基于 ARM 设计的 64 位芯片的名称)。在 x64 Linux 上,你会看到
go 版本 go1.20.5 linux/amd64
Go 语言支持以下系统:
安装包下载地址为:https://go.dev/dl/。
如果打不开可以使用这个地址:https://golang.google.cn/dl/。
各个系统对应的包名:
操作系统 | 包名 |
---|---|
Windows | go1.4.windows-amd64.msi |
Linux | go1.4.linux-amd64.tar.gz |
Mac | go1.4.darwin-amd64-osx10.8.pkg |
FreeBSD | go1.4.freebsd-amd64.tar.gz |
以下介绍了在UNIX/Linux/Mac OS X, 和 FreeBSD系统下使用源码安装方法:
1、下载二进制包:go1.4.linux-amd64.tar.gz。
2、将下载的二进制包解压至 /usr/local目录。
tar -C /usr/local -xzf go1.4.linux-amd64.tar.gz
3、将 /usr/local/go/bin 目录添加至 PATH 环境变量:
export PATH=$PATH:/usr/local/go/bin
以上只能暂时添加 PATH,关闭终端下次再登录就没有了。
我们可以编辑 ~/.bash_profile 或者 /etc/profile,并将以下命令添加该文件的末尾,这样就永久生效了:
export PATH=$PATH:/usr/local/go/bin
添加后需要执行:
source ~/.bash_profile
或
source /etc/profile
**注意:**MAC 系统下你可以使用 .pkg 结尾的安装包直接双击来完成安装,安装目录在 /usr/local/go/ 下。
Windows 下可以使用 .msi 后缀(在下载列表中可以找到该文件,如go1.4.2.windows-amd64.msi)的安装包来安装。
默认情况下 .msi 文件会安装在 c:\Go 目录下。你可以将 c:\Go\bin 目录添加到 Path 环境变量中。添加后你需要重启命令窗口才能生效。
创建工作目录 C:>Go_WorkSpace。
让我们来了解一下编写 Go 程序的基础知识。在这个过程中,你将看到组成一个简单 Go 程序的各个部分。你可能还不能完全理解,没关系,这正是专栏后续内容的目的所在!
使用goland创建go的项目后,可以看到项目的截图如下:
每个模块的根目录下都有一个 go.mod 文件。Running 会为您创建该文件。基本 go.mod 文件的内容如下:
module learn_go
go 1.21
go.mod 文件声明了模块的名称、模块所支持的 Go 最低版本,以及模块所依赖的任何其他模块。您可以把它想象成类似于 Python 使用的 requirements.txt 文件或 Ruby 使用的 Gemfile 文件。
现在,你只需知道 Go 项目被称为模块。模块不仅仅是源代码。它还是模块内代码依赖关系的精确说明。
现在,让我们来编写一些代码!打开文本编辑器,输入以下文本,并将其保存在 ch1 中,文件名为 hello.go:
package main
import "fmt"
func main() {
fmt.Println("Hello world!")
}
让我们快速浏览一下创建的 Go 文件的各个部分。第一行是包声明。在 Go 模块中,代码被组织成一个或多个包。Go 模块中的主包包含启动 Go 程序的代码。
接下来是导入声明。该声明列出了该文件中引用的软件包。您要使用的是标准库中的(通常发音为 “fumpt”)包中的一个函数,因此在此列出该包。与其他语言不同,Go 只能导入整个软件包。你不能将导入限制在包内的特定类型、函数、常量或变量上。
所有 Go 程序都是从软件包中的函数开始的。您可以用左大括号声明该函数。与 Java、JavaScript 和 C 一样,Go 也使用大括号来标记代码块的开始和结束。
函数的主体只有一行。它说明您正在调用软件包中的 Println 函数,其参数为 .作为一名经验丰富的开发人员,你很可能猜到这个函数调用的作用。
右键运行:
输出如下:
Go 的主要设计目标之一是创建一种可以高效编写代码的语言。这意味着要有简单的语法和快速的编译器。这也促使 Go 的作者重新考虑代码格式。大多数语言在代码格式方面都有很大的灵活性。Go 却没有。强制执行标准格式可以大大简化源代码处理工具的编写。这将简化编译器,并允许创建一些用于生成代码的巧妙工具。
这样做还有一个好处。开发人员历来在格式之争上浪费大量时间。由于 Go 定义了一种标准的代码格式化方式,Go 开发人员可以避免在括号样式和制表符与空格之间发生争执。例如,Go 语言程序使用制表符来缩进,如果开头的括号与声明或命令不在同一行,那就是语法错误。
许多 Go 开发者认为,Go 团队定义标准格式是为了避免开发者争论,后来才发现工具的优势。然而,Go 开发负责人 Russ Cox 曾公开表示,更好的工具是他最初的动机。
Go 开发工具包含一个命令,它可以自动修复代码中的空白,使其符合标准格式。不过,它不能修复错行的大括号。用下面的命令运行它$ go fmt ./…
go fmt ./hello.go
go fmt ./... 使用会告诉 Go 工具将命令应用到当前目录和所有子目录中的所有文件。在学习更多 Go 工具时,您还会看到它。