Go是一种编程语言,它源于Google的无奈之举。开发人员必须不断选择一种执行效率高但要花很长时间才能编译的语言,或者选择一种易于编程但在生产中运行效率低下的语言。Go旨在同时提供所有三个功能:快速编译,易于编程以及在生产中高效执行。
尽管Go是一种通用的编程语言,可以用于许多不同的编程项目,但它特别适合于网络/分布式系统程序,并赢得了"云语言"的美誉。它专注于帮助现代程序员做借助强大的工具集,还可以解决更多的问题,通过使格式成为语言规范的一部分,消除了有关格式的争论,并通过编译为单个二进制文件简化了部署。Go易于学习,只包含很少的关键字,对于初学者和经验丰富的开发人员而言,它都是不错的选择。
本教程将指导您在本地macOS机器上安装Go并通过命令行设置编程工作区。
您将需要一台具有管理访问权限的macOS计算机,该计算机已连接到Internet。
我们将在命令行上完成大部分安装和设置。macOS终端是可用于访问命令行界面的应用程序。与其他任何应用程序一样,您可以通过以下方法找到它:进入Finder,导航到Applications文件夹,然后进入Utilities文件夹。从此处,像其他任何应用程序一样,双击终端以将其打开。或者,您可以通过按住CMD和SPACE键来使用Spotlight,方法是在出现的框中将其键入来找到终端。
现在,您已经打开Terminal,可以下载并安装Xcode,这是安装Go所需的开发人员工具包。
Xcode是一个集成开发环境(IDE),由用于macOS的软件开发工具组成。您可以通过在"终端"窗口中键入以下命令来检查是否已安装Xcode:
$ xcode-select -p
以下输出表示已安装Xcode:
Output
/Library/Developer/CommandLineTools
如果收到错误,请在Web浏览器中从App Store安装Xcode并接受默认选项。
一旦安装了Xcode,请返回到"终端"窗口。接下来,您需要安装Xcode的单独的命令行工具应用程序,您可以通过键入以下命令进行安装:
$ xcode-select --install
至此,Xcode及其命令行工具应用程序已完全安装,我们准备安装软件包管理器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环境变量的顶部。这将确保通过MacOS可能会自动选择的工具调用Homebrew安装,这些工具可能会与我们正在创建的开发环境背道而驰。
您应该使用以下命令通过命令~/.bash_profile行文本编辑器nano创建或打开文件nano:
¥ nano ~/.bash_profile
在"终端"窗口中打开文件后,编写以下内容:
export PATH=/usr/local/bin:$PATH
要保存更改,请按住CTRL键和字母o,然后在出现提示时RETURN按键。现在您可以按住CTRL键和字母退出nano x。
通过在终端中执行以下操作来激活这些更改:
· source ~/.bash_profile
完成此操作后,对PATH环境变量所做的更改将生效。
您可以通过键入以下命令来确保成功安装了Homebrew:
$ brew doctor
如果此时不需要更新,则终端输出将显示为:
Output
Your system is ready to brew.
否则,您可能会收到警告,提示您运行其他命令,例如brew update确保您安装的Homebrew是最新的。
准备好Homebrew之后,即可安装Go。
您可以使用Homebrew通过该brew search命令搜索所有可用的软件包。就本教程而言,您将搜索与Go相关的软件包或模块:
$ brew search golang
注意:本教程不使用,brew search go因为它返回太多结果。因为go这个词很小,并且可以匹配许多软件包,所以golang用作搜索词已变得很普遍。在Internet上搜索与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项目创建工作区了。
现在,您已经安装了Xcode,Homebrew和Go,可以继续创建您的编程工作区。
Go工作空间的根目录将包含两个目录:
· src:包含Go源文件的目录。源文件是您使用Go编程语言编写的文件。Go编译器使用源文件来创建可执行的二进制文件。
· bin:包含Go工具构建和安装的可执行文件的目录。可执行文件是在系统上运行并执行任务的二进制文件。这些通常是由您的源代码或其他下载的Go源代码编译的程序。
该src子目录可以包含多个版本控制存储库(如GIT中,水银,和集市)。你会看到这样的目录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。如果您使用的Go版本早于1.8,则最佳做法是仍然使用$HOME/go工作区的位置。
发出以下命令为您的Go工作区创建目录结构:
$ mkdir -p $HOME/go/{bin,src}
该-p选项告诉mkdir您parents在目录中创建所有内容,即使它们当前不存在也是如此。using使用来{bin,src}创建一组参数,mkdir并告诉它创建bin目录和src目录。
这将确保以下目录结构到位:
└── $HOME └── go ├── bin └── src
在Go 1.8之前,需要设置一个名为的本地环境变量$GOPATH。尽管不再明确要求这样做,但由于许多第三方工具仍依赖于此变量的设置,因此仍被认为是一种好习惯。
您可以$GOPATH通过将其添加到中来进行设置~/.bash_profile。
首先,~/.bash_profile使用nano或您喜欢的文本编辑器打开:
$ nano ~/.bash_profile
设置您$GOPATH通过将下面的文件:
$〜/ .bash_profile
export GOPATH=$HOME/go
当Go编译并安装工具时,它将放置在$GOPATH/bin目录中。为了方便起见,通常在以下位置将工作空间的/bin子目录添加到您的目录PATH中~/.bash_profile:
〜/ .bash_profile
export PATH=$PATH:$GOPATH/bin
现在,您应该在以下条目中输入~/.bash_profile:
〜/ .bash_profile
export GOPATH=$HOME/goexport PATH=$PATH:$GOPATH/bin
现在,这将允许您运行通过系统上任何位置的Go工具编译或下载的任何程序。
要更新您的shell,请发出以下命令以加载刚创建的全局变量:
$ . ~/.bash_profile
您可以$PATH通过使用echo命令并检查输出来验证您的更新:
· 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工作区并配置了必要的环境变量。在下一步中,您将使用一些代码来测试工作区。
现在您已经设置好Go工作区,现在该创建一个简单的" Hello,World!"程序了。这将确保您的工作空间正常运行,并为您提供对Go更加熟悉的机会。
因为您正在创建一个Go源文件,而不是一个实际项目,所以您无需在工作区中执行此操作。
在主目录中,打开一个命令行文本编辑器(例如)nano,然后创建一个新文件:
$ nano hello.go
在终端中打开文本文件后,键入程序:
package mainimport "fmt"func main() { fmt.Println("Hello, World!")}
通过输入control和x键退出nano ,然后在提示您保存文件时按y。
此代码将使用该fmt包,并Println以Hello, World!作为参数调用函数。Hello, World!程序运行时,这将导致该短语输出到终端。
一旦退出nano并返回shell,请运行程序:
$ go run hello.go
hello.go您刚创建的程序将使Terminal产生以下输出:
Output
Hello, World!
在此步骤中,您使用了一个基本程序来验证Go工作区是否已正确配置。
至此,您已经在本地macOS机器上设置了Go编程工作区,并可以开始编码项目!
译自 digitalocean
点击关注,如果发现任何不正确的地方,或者想分享有关上述主题的更多信息,欢迎反馈。