[ 每周译Go ] 《How to Code in Go》系列第二篇

Hello , Gophers !
上周我们发布了《How-To-Code-in-Go》系列介绍和第一篇内容《如何在 Ubuntu 18.04 上安装 Go 和设置本地编程环境》,详细内容请戳「每周译Go」这次我们来点不一样的!—《How to Code in Go》系列上线。
本周我们将为大家介绍在 macOS 上和 Windows 10 上安装 Go 和设置本地编程环境,下周我们将开始一起学习《如何用 Go 编写你的第一个程序》,没跟上的队友们抓紧了~
跟进小G,不掉队!
[ 每周译Go ] 《How to Code in Go》系列第二篇
文章图片

[ 每周译Go ] 《How to Code in Go》系列第二篇
文章图片

今天我们先来学习在 macOS 上安装 Go 和设置本地编程环境的操作。
如何在 macOS 上安装 Go 和设置本地编程环境 Go 语言简介
Go 是一门在 Google 备受挫折后而诞生的语言。开发者不得不频繁地在两门语言中选择,要么选择一门执行效率高但是编译时间长的语言,要么选择一种易于编程但在生产中运行效率低下的语言。 Go 被设计为同时提供所有这三个功能:快速编译、易于编程和生产中的高效执行。
虽然 Go 是一门通用的编程语言,可用于许多不同类型的编程项目。但它特别适合网络/分布式系统项目,赢得了“云语言”的美誉。Go 语言专注于通过一组强大的工具来帮助现代程序员完成更多的工作,通过使格式成为语言规范的一部分来消除对格式的争论,以及通过编译为单个二进制文件来简化部署。 Go 易于学习,关键字非常少,这使其成为不论是初学者还是经验丰富的开发人员的不二之选。
本教程将指导你通过命令行来安装 Go 和配置 Go 编程环境。本教程特别针对 Ubuntu 18.04 的安装过程,但是对于其他 Debian Linux 发行版也同样适用。
安装前提
你需要一台拥有管理员权限并且能够连接上网的 macOS 的电脑。
第一步:打开终端
我们将会在终端上完成我们大部分的安装和设置,这是一种与计算机交互的非图形化方式。也就是说,你输入的是文本,然后也是通过文本得到计算机的反馈,而不是点击按钮。命令行,也就是我们熟知的 shell 或者 终端 ,可以帮助你修改或自动化很多你每天执行在计算机上的任务,这是软件开发人员必备的工具。
macOS 终端是一个可以访问命令行界面的应用程序。就像其他应用程序那样,你可以通过进入 Finder ,导航到 Applications 文件夹,最后进入 Utilities 文件夹找到它。然后就像打开其他应用程序一样双击终端将其打开。或者,你可以通过按住CMDSPACE 键来启动 Spotlight,然后在出现的框中输入终端来查找它。
[ 每周译Go ] 《How to Code in Go》系列第二篇
文章图片

尽管有很多终端命令需要学习,但是这些命令可以让你做更强大的事情。 文章Linux 终端简介 可以让你更好地了解 Linux 终端,它和 macOS 终端类似。
现在你已经打开了终端,你可以下载并安装 Xcode,这是安装 Go 语言所需的开发者工具包。
第二步:安装 Xcode
Xcode 是一个集成开发环境(IDE),由 macOS 软件开发工具组成。你可以在终端窗口中输入以下命令来检查 Xcode 是否已安装。

xcode-select -p

下面的输出表明 Xcode 已经安装了:
output /Library/Developer/CommandLineTools

如果收到错误信息,请在你的网络浏览器中安装来自 App Store 的 Xcode)并接受默认选项。
安装完 Xcode 后,返回终端窗口。接下来,你需要安装 Xcode 的单独命令行工具应用,可以通过输入以下命令:
xcode-select --install

至此,Xcode 及其命令行工具应用已安装完毕,我们准备安装包管理器 Homebrew。
第三步:安装和设置 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 命令相关的一些标志:
  • The -f or --fail flag tells the Terminal window to give no HTML document output on server errors.
  • -f 或者 --fail 标志告诉终端窗口在服务器错误时不提供 HTML 文档输出。
  • The -s or --silent flag mutes curl so that it does not show the progress meter, and combined with the -S or --show-error flag it will ensure that curl shows an error message if it fails.
  • -s 或者 --silent 标志给curl静音使其不显示进度表,并且结合 -S 或者 --show-error 标志来确保 curl 在失败时显示错误消息。
  • The -L or --location flag will tell curl to redo the request to a new place if the server reports that the requested page has moved to a different location.
  • -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 了。
第四步:安装 Go
你可以通过 brew search 命令来使用 Homebrew 搜索所有可用的软件包。 出于本教程的目的,你将搜索与 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 项目创建工作区。
第五步:创建你的 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 工作区的默认目录是用户的 home 目录,并带有 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 告诉编译器在哪里可以找到导入的第三方源代码,同样包括任何你写的本地源代码。 虽然不再明确要求它,但它仍然被认为是一种很好的做法,因为许多第三方工具仍然依赖于设置的这个变量。
你可以通过将全局变量添加到你的 ~/.profile 中来设置你的 $GOPATH。 你可能想根据你的 shell 配置将其添加到 .zshrc.bashrc 文件中。
首先,使用 nano 或你喜欢的文本编辑器打开 ~/.profile
nano ~/.bash_profile

通过下面的命令设置你的 $GOPATH
~/.bash\_profile export GOPATH=$HOME/go

当 Go 编译和安装工具时,会将他们放在 $GOPATH/bin 目录。为方便起见,通常将工作区的 /bin 子目录添加到 ~/.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

We can see it successfully downloaded the godo package by listing the directory:
你可以通过列出目录来检查下看看是否成功下载了 godo包:
ls -l $GOPATH/src/github.com/digitalocean/godo

你应该看到类似下面这样的输出:
Output -rw-r--r--1 sammystaff2892 Apr5 15:56 CHANGELOG.md -rw-r--r--1 sammystaff1851 Apr5 15:56 CONTRIBUTING.md . . . -rw-r--r--1 sammystaff4893 Apr5 15:56 vpcs.go -rw-r--r--1 sammystaff4091 Apr5 15:56 vpcs_test.go

在这一步中,你创建了一个 Go 工作区并且配置了必要的环境变量。下一步你将使用一些代码来测试下工作区。
第六步:创建一个简单的程序
现在你已经设置了工作区,来创建一个 “Hello, World!” 程序吧。这可以检验工作区配置是否正确,并且给你一个更加熟悉 Go 的机会。
因为我们创建的是单个 Go 源文件,而不是实际项目,所以我们不需要在工作区中执行此操作。
在你的 home 目录,打开一个命令行文本编辑器,例如 nano,然后创建一个新文件:
nano hello.go

在终端中打开文本文件后,输入你的程序代码:
package mainimport "fmt"func main() { fmt.Println("Hello, World!") }

CTRLX 键退出 nano。 当提示保存文件时,按 Y就行。
该代码使用了 fmt 包并且使用 Hello, World! 作为参数调用了 Println 函数。这将导致短语 Hello, World! 在程序运行时打印到终端上。
退出 nano 返回 shell 后,运行程序:
go run hello.go

hello.go 程序会使终端产生以下输出:
Output Hello, World!

在此步骤中,你使用了一个简单小程序来验证是否正确配置了 Go 工作区。
总结
恭喜!至此,你已经在 macOS 机器上设置了 Go 编程工作区,可以开始写项目了!
那么,你学会了吗?安装成功的 Gopher 在评论区留言 “Hello,Gophers!” 告诉我,哈哈哈~
有任何问题或想法也欢迎评论区留言,大家互相交流,一起学习,共同进步!我就要一个人偷偷卷
[ 每周译Go ] 《How to Code in Go》系列第二篇
文章图片

[ 每周译Go ] 《How to Code in Go》系列第二篇
文章图片

【[ 每周译Go ] 《How to Code in Go》系列第二篇】本文由mdnice多平台发布

    推荐阅读