介绍
Go 是一种在谷歌受挫后诞生的编程语言。开发人员不断地不得不选择一种执行效率高但编译时间长的语言,或者选择一种易于编程但在生产中运行效率低下的语言。 Go 被设计为同时提供所有这三个功能:快速编译、易于编程和生产中的高效执行。
虽然 Go 是一种通用的编程语言,可用于许多不同的编程项目,但它特别适合网络/分布式系统程序,并赢得了“云语言”的美誉。它专注于帮助现代程序员使用一组强大的工具完成更多工作,通过使格式成为语言规范的一部分来消除对格式的争论,以及通过编译为单个二进制文件来简化部署。 Go 易于学习,关键字非常少,这使其成为初学者和经验丰富的开发人员的绝佳选择。
本教程将指导您在本地 macOS 机器上安装 Go 并通过命令行设置编程工作区。
先决条件
您将需要一台具有管理访问权限且连接到 Internet 的 macOS 计算机。
第 1 步 — 打开终端
我们将在命令行上完成大部分安装和设置,这是一种与您的计算机交互的非图形方式。也就是说,您将输入文本并通过文本从计算机接收反馈,而不是单击按钮。命令行,也称为 shell,可以帮助您修改和自动化您每天在计算机上执行的许多任务,是软件开发人员必不可少的工具。
macOS 终端是一个可用于访问命令行界面的应用程序。与任何其他应用程序一样,您可以通过进入 Finder,导航到 Applications 文件夹,然后进入 Utilities 文件夹来找到它。从这里,像任何其他应用程序一样双击终端以将其打开。或者,您可以通过按住 CMD 和 SPACE 键来使用 Spotlight,通过在出现的框中键入终端来查找终端。
还有更多终端命令需要学习,可以让你做更强大的事情。文章“[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 编程工作区,可以开始编码项目了!
- 登录 发表评论