介绍
Go 是一种在谷歌受挫后诞生的编程语言。 开发人员不断地不得不选择一种执行效率高但编译时间长的语言,或者选择一种易于编程但在生产中运行效率低下的语言。 Go 被设计为同时提供所有这三个功能:快速编译、易于编程和生产中的高效执行。
虽然 Go 是一种通用的编程语言,可用于许多不同的编程项目,但它特别适合网络/分布式系统程序,并赢得了“云语言”的美誉。 它专注于帮助现代程序员使用一组强大的工具完成更多工作,通过使格式成为语言规范的一部分来消除对格式的争论,以及通过编译为单个二进制文件来简化部署。 Go 易于学习,关键字非常少,这使其成为初学者和经验丰富的开发人员的绝佳选择。
本教程将指导您在本地 macOS 机器上安装 Go 并通过命令行设置编程工作区。
先决条件
您将需要一台具有管理访问权限且连接到 Internet 的 macOS 计算机。
第 1 步 — 打开终端
我们将在命令行上完成大部分安装和设置,这是一种与您的计算机交互的非图形方式。 也就是说,您将输入文本并通过文本从计算机接收反馈,而不是单击按钮。 命令行,也称为 shell,可以帮助您修改和自动化您每天在计算机上执行的许多任务,是软件开发人员必不可少的工具。
macOS 终端是一个可用于访问命令行界面的应用程序。 与任何其他应用程序一样,您可以通过进入 Finder,导航到 Applications 文件夹,然后进入 Utilities 文件夹来找到它。 从这里,像任何其他应用程序一样双击终端以将其打开。 或者,您可以通过按住 CMD
和 SPACE
键来使用 Spotlight,通过在出现的框中键入终端来查找终端。
还有更多终端命令需要学习,可以让你做更强大的事情。 The article “[An Introduction to the Linux Terminal] (an-introduction-to-the-linux-terminal)” can get you better oriented with the Linux Terminal, which is similar to the macOS Terminal.
现在您已经打开了终端,您可以下载并安装 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 中提取脚本。 该脚本将解释它将做什么,然后暂停该过程以提示您确认。 这为您提供了有关脚本将对您的系统执行的操作的大量反馈,并让您有机会验证该过程。
如果您需要输入密码,请注意您的击键不会显示在终端窗口中,但会被记录下来。 输入密码后,只需按 return
键。 否则,当系统提示您确认安装时,按字母 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
如果此时不需要更新,终端输出将显示:
OutputYour 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
。
终端将输出您可以安装的列表:
Outputgolang 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
这样的代码存储库,您还将把项目和源文件放在该目录下。 这允许在您的项目中规范地导入代码。 Canonical 导入是引用完全限定包的导入,例如 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
在目录中创建所有 parents
,即使它们当前不存在。 使用 {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
程序将导致终端产生以下输出:
OutputHello, World!
在此步骤中,您使用了一个基本程序来验证您的 Go 工作区是否已正确配置。
结论
恭喜! 至此,您在本地 macOS 机器上设置了 Go 编程工作区,可以开始编码项目了!