跳转到主要内容

介绍


Go 是一种在谷歌受挫后诞生的编程语言。开发人员不断地不得不选择一种执行效率高但编译时间长的语言,或者选择一种易于编程但在生产中运行效率低下的语言。 Go 被设计为同时提供所有这三个功能:快速编译、易于编程和生产中的高效执行。

虽然 Go 是一种通用的编程语言,可用于许多不同的编程项目,但它特别适合网络/分布式系统程序,并赢得了“云语言”的美誉。它专注于帮助现代程序员使用一组强大的工具完成更多工作,通过使格式成为语言规范的一部分来消除对格式的争论,以及通过编译为单个二进制文件来简化部署。 Go 易于学习,关键字非常少,这使其成为初学者和经验丰富的开发人员的绝佳选择。

本教程将指导您在本地 macOS 机器上安装 Go 并通过命令行设置编程工作区。

先决条件


您将需要一台具有管理访问权限且连接到 Internet 的 macOS 计算机。

第 1 步 — 打开终端


我们将在命令行上完成大部分安装和设置,这是一种与您的计算机交互的非图形方式。也就是说,您将输入文本并通过文本从计算机接收反馈,而不是单击按钮。命令行,也称为 shell,可以帮助您修改和自动化您每天在计算机上执行的许多任务,是软件开发人员必不可少的工具。

macOS 终端是一个可用于访问命令行界面的应用程序。与任何其他应用程序一样,您可以通过进入 Finder,导航到 Applications 文件夹,然后进入 Utilities 文件夹来找到它。从这里,像任何其他应用程序一样双击终端以将其打开。或者,您可以通过按住 CMD 和 SPACE 键来使用 Spotlight,通过在出现的框中键入终端来查找终端。

macOS Terminal

还有更多终端命令需要学习,可以让你做更强大的事情。文章“[An Introduction to the Linux Terminal] (https://www.digitalocean.com/community/tutorials/an-introduction-to-the-linux-terminal)”可以让您更好地了解 Linux 终端,它类似于 macOS 终端。

现在您已经打开了终端,您可以下载并安装 Xcode,这是安装 Go 所需的开发工具包。

第 2 步 — 安装 Xcode


Xcode 是一个集成开发环境 (IDE),由 macOS 的软件开发工具组成。您可以通过在终端窗口中键入以下内容来检查 Xcode 是否已安装:

xcode-select -p


以下输出表示 Xcode 已安装:

Output
/Library/Developer/CommandLineTools


如果您收到错误,请在您的网络浏览器中安装 [来自 App Store 的 Xcode] (https://itunes.apple.com/us/app/xcode/id497799835?mt=12&ign-mpt=uo%3D2) 并接受默认选项。

安装 Xcode 后,返回终端窗口。接下来,您需要安装 Xcode 的单独命令行工具应用程序,您可以通过键入:

xcode-select --install


至此,Xcode 及其命令行工具应用程序已完全安装,我们准备安装包管理器 Homebrew。

第 3 步 — 安装和设置 Homebrew


虽然 macOS 终端具有 Linux 终端和其他 Unix 系统的许多功能,但它没有提供适应最佳实践的包管理器。包管理器是一组软件工具,用于自动化安装过程,包括初始软件安装、软件升级和配置,以及根据需要删除软件。他们将安装保存在一个中央位置,并且可以以常用格式维护系统上的所有软件包。 Homebrew 为 macOS 提供了一个免费的开源软件包管理系统,简化了 macOS 上的软件安装。

要安装 Homebrew,请在终端窗口中输入:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"


Homebrew 是用 Ruby 制作的,因此它将修改您计算机的 Ruby 路径。 curl 命令从指定的 URL 中提取脚本。该脚本将解释它将做什么,然后暂停该过程以提示您确认。这为您提供了有关脚本将对您的系统执行的操作的大量反馈,并让您有机会验证该过程。

如果您需要输入密码,请注意您的击键不会显示在终端窗口中,但会被记录下来。输入密码后,只需按返回键。否则,当系统提示您确认安装时,按字母 y 表示“是”。

让我们看一下与 curl 命令相关的标志:

  • -f 或 --fail 标志告诉终端窗口在服务器错误时不提供 HTML 文档输出。
  • -s 或 --silent 标志使 curl 静音,因此它不显示进度表,并与 -S 或 --show-error 标志结合使用,它将确保 curl 在失败时显示错误消息。
  • 如果服务器报告请求的页面已移动到不同的位置, -L 或 --location 标志将告诉 curl 将请求重做到新位置。

安装过程完成后,我们将把 Homebrew 目录放在 PATH 环境变量的顶部。这将确保 Homebrew 安装将通过 macOS 可能自动选择的工具调用,这些工​​具可能与我们正在创建的开发环境背道而驰。

您应该使用 nano 命令使用命令行文本编辑器 nano 创建或打开 ~/.bash_profile 文件:

nano ~/.bash_profile


在终端窗口中打开文件后,编写以下内容:

export PATH=/usr/local/bin:$PATH


要保存更改,请按住 CTRL 键和字母 o,并在出现提示时按 RETURN 键。现在您可以通过按住 CTRL 键和字母 x 来退出 nano。

通过在终端中执行以下命令来激活这些更改:

source ~/.bash_profile


完成此操作后,您对 PATH 环境变量所做的更改将生效。

您可以通过键入以下内容来确保 Homebrew 已成功安装:

brew doctor


如果此时不需要更新,终端输出将显示:

Output
Your system is ready to brew.


否则,您可能会收到运行另一个命令(例如 brew update)的警告,以确保您的 Homebrew 安装是最新的。

Homebrew 准备好后,您可以安装 Go。

##Step 4 — 安装 Go

您可以使用 Homebrew 通过 brew search 命令搜索所有可用的软件包。出于本教程的目的,您将搜索与 Go 相关的包或模块:

brew search golang


注意:本教程不使用 brew search go,因为它返回的结果太多。因为 go 是一个很小的词,并且会匹配很多包,所以使用 golang 作为搜索词已经很普遍。这也是在互联网上搜索 Go 相关文章时的常见做法。 Golang 一词起源于 Go 的域,即 golang.org。

终端将输出您可以安装的列表:

Output
golang    golang-migrate


Go 将成为列表中的项目之一。继续安装它:

brew install golang


终端窗口将为您提供有关 Go 安装过程的反馈。安装完成可能需要几分钟时间。

要检查您安装的 Go 版本,请键入以下内容:

go version


这将输出当前安装的 Go 的特定版本,默认情况下它将是可用的最新、稳定的 Go 版本。

以后要更新 Go,您可以运行以下命令先更新 Homebrew,然后再更新 Go。您现在不必这样做,因为您刚刚安装了最新版本:

brew update
brew upgrade golang


brew update 将更新 Homebrew 本身的公式,确保您拥有要安装的软件包的最新信息。 brew upgrade golang 会将 golang 包更新到该包的最新版本。

确保您的 Go 版本是最新的是一种很好的做法。

在您的计算机上安装 Go 后,您现在可以为您的 Go 项目创建工作区。

第 5 步 — 创建您的 Go 工作区


现在您已经安装了 Xcode、Homebrew 和 Go,您可以继续创建您的编程工作区。

Go 工作区将在其根目录包含两个目录:

  • src:包含 Go 源文件的目录。源文件是您使用 Go 编程语言编写的文件。 Go 编译器使用源文件来创建可执行的二进制文件。
  • bin:包含由 Go 工具构建和安装的可执行文件的目录。可执行文件是在您的系统上运行并执行任务的二进制文件。这些通常是由您的源代码或其他下载的 Go 源代码编译的程序。

src 子目录可能包含多个版本控制存储库(例如 Git、Mercurial 和 Bazaar)。当您的程序导入第三方库时,您将看到 github.com 或 golang.org 等目录。如果您使用的是 github.com 之类的代码存储库,您还将把项目和源文件放在该目录下。这允许在您的项目中规范地导入代码。规范导入是引用完全限定包的导入,例如 github.com/digitalocean/godo。

以下是典型工作区的外观:

.
├── bin
│   ├── buffalo                                      # command executable
│   ├── dlv                                          # command executable
│   └── packr                                        # command executable
└── src
    └── github.com
        └── digitalocean
            └── godo
                ├── .git                            # Git reposistory metadata
                ├── account.go                      # package source
                ├── account_test.go                 # test source
                ├── ...
                ├── timestamp.go
                ├── timestamp_test.go
                └── util
                    ├── droplet.go
                    └── droplet_test.go

 

从 1.8 开始,Go 工作区的默认目录是用户的主目录,带有一个 go 子目录,或 $HOME/go。如果您使用的是早于 1.8 的 Go 版本,则最佳做法是仍然为您的工作区使用 $HOME/go 位置。

发出以下命令为 Go 工作区创建目录结构:

mkdir -p $HOME/go/{bin,src}


-p 选项告诉 mkdir 在目录中创建所有父级,即使它们当前不存在。使用 {bin,src} 为 mkdir 创建一组参数,并告诉它创建 bin 目录和 src 目录。

这将确保以下目录结构现在到位:

└── $HOME
    └── go
        ├── bin
        └── src


在 Go 1.8 之前,需要设置一个名为 $GOPATH 的本地环境变量。虽然不再明确要求这样做,但它仍然被认为是一种很好的做法,因为许多第三方工具仍然依赖于设置的这个变量。

您可以通过将 $GOPATH 添加到 ~/.bash_profile 来设置它。

首先,使用 nano 或您喜欢的文本编辑器打开 ~/.bash_profile:

nano ~/.bash_profile


通过将以下内容添加到文件中来设置您的 $GOPATH:

~/.bash_profile

export GOPATH=$HOME/go


Go 编译和安装工具时,会将它们放在 $GOPATH/bin 目录中。为方便起见,通常将工作区的 /bin 子目录添加到 ~/.bash_profile 中的 PATH 中:

~/.bash_profile

export PATH=$PATH:$GOPATH/bin


现在,您的 ~/.bash_profile 中应该有以下条目:

~/.bash_profile

export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin


现在,这将允许您在系统上的任何位置运行通过 Go 工具编译或下载的任何程序。

要更新您的 shell,请发出以下命令以加载您刚刚创建的全局变量:

. ~/.bash_profile


您可以通过使用 echo 命令并检查输出来验证您的 $PATH 是否已更新:

echo $PATH


您应该会看到您的 $GOPATH/bin 将显示在您的主目录中。如果您以 sammy 身份登录,您会在路径中看到 /Users/sammy/go/bin。

Output
/Users/sammy/go/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin


现在您已经创建了工作空间的根目录并设置了 $GOPATH 环境变量,您将创建具有以下目录结构的未来项目。此示例假设您使用 github.com 作为存储库:

$GOPATH/src/github.com/username/project


如果您正在处理 https://github.com/digitalocean/godo 项目,您可以将其放在以下目录中:

$GOPATH/src/github.com/digitalocean/godo


以这种方式构建项目将使项目可以使用 go get 工具。它也将有助于以后的可读性。

您可以使用 go get 命令获取 godo 库来验证这一点:

go get github.com/digitalocean/godo


通过列出目录我们可以看到它成功下载了godo包:

ls -l $GOPATH/src/github.com/digitalocean/godo


您将收到与此类似的输出:

Output
-rw-r--r--  1 sammy  staff   2892 Apr  5 15:56 CHANGELOG.md
-rw-r--r--  1 sammy  staff   1851 Apr  5 15:56 CONTRIBUTING.md
.
.
.
-rw-r--r--  1 sammy  staff   4893 Apr  5 15:56 vpcs.go
-rw-r--r--  1 sammy  staff   4091 Apr  5 15:56 vpcs_test.go


在此步骤中,您创建了一个 Go 工作区并配置了必要的环境变量。在下一步中,您将使用一些代码测试工作区。

第 6 步 — 创建一个简单的程序


现在您已经设置好了 Go 工作区,是时候创建一个简单的“Hello, World!”了。程序。这将确保您的工作区正常工作,并让您有机会更加熟悉 Go。

因为您正在创建单个 Go 源文件,而不是实际项目,所以您不需要在工作区中执行此操作。

在您的主目录中,打开一个命令行文本编辑器,例如 nano,然后创建一个新文件:

nano hello.go


在终端中打开文本文件后,输入您的程序:

package main

import "fmt"

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

通过键入 control 和 x 键退出 nano,并在提示保存文件时按 y。

此代码将使用 fmt 包并使用 Hello, World! 调用 Println 函数!作为论据。这将导致短语 Hello, World!在程序运行时打印到终端。

退出 nano 并返回 shell 后,运行程序:

go run hello.go


您刚刚创建的 hello.go 程序将使终端产生以下输出:

Output
Hello, World!


在此步骤中,您使用了一个基本程序来验证您的 Go 工作区是否已正确配置。

结论


恭喜!至此,您在本地 macOS 机器上设置了 Go 编程工作区,可以开始编码项目了!

文章链接