Hello , Gophers !
上周咱们公布了《How-To-Code-in-Go》系列介绍和第一篇内容《如何在 Ubuntu 18.04 上装置 Go 和设置本地编程环境》,具体内容请戳「每周译 Go」这次咱们来点不一样的!—《How to Code in Go》系列上线。
本周咱们将为大家介绍在 macOS 上和 Windows 10 上装置 Go 和设置本地编程环境,下周咱们将开始一起学习《如何用 Go 编写你的第一个程序》,没跟上的队友们放松了~
跟进小 G,不落伍!
明天咱们先来学习在 macOS 上装置 Go 和设置本地编程环境的操作。
如何在 macOS 上装置 Go 和设置本地编程环境
Go 语言简介
Go 是一门在 Google 备受挫折后而诞生的语言。开发者不得不频繁地在两门语言中抉择,要么抉择一门执行效率高然而编译工夫长的语言,要么抉择一种易于编程但在生产中运行效率低下的语言。Go 被设计为同时提供所有这三个性能:疾速编译、易于编程和生产中的高效执行。
尽管 Go 是一门通用的编程语言,可用于许多不同类型的编程我的项目。但它特地适宜网络 / 分布式系统我的项目,博得了“云语言”的美誉。Go 语言专一于通过一组弱小的工具来帮忙古代程序员实现更多的工作,通过使格局成为语言标准的一部分来打消对格局的争执,以及通过编译为单个二进制文件来简化部署。Go 易于学习,关键字非常少,这使其成为不论是初学者还是经验丰富的开发人员的不二之选。
本教程将领导你通过命令行来装置 Go 和配置 Go 编程环境。本教程特地针对 Ubuntu 18.04 的装置过程,然而对于其余 Debian Linux 发行版也同样实用。
装置前提
你须要一台领有管理员权限并且可能连贯上网的 macOS 的电脑。
第一步:关上终端
咱们将会在终端上实现咱们大部分的装置和设置,这是一种与计算机交互的非图形化形式。也就是说,你输出的是文本,而后也是通过文本失去计算机的反馈,而不是点击按钮。命令行,也就是咱们熟知的 shell 或者 终端,能够帮忙你批改或自动化很多你每天执行在计算机上的工作,这是软件开发人员必备的工具。
macOS 终端是一个能够拜访命令行界面的应用程序。就像其余应用程序那样,你能够通过进入 Finder,导航到 Applications 文件夹,最初进入 Utilities 文件夹找到它。而后就像关上其余应用程序一样双击终端将其关上。或者,你能够通过按住CMD
和 SPACE
键来启动 Spotlight,而后在呈现的框中输出终端来查找它。
只管有很多终端命令须要学习,然而这些命令能够让你做更弱小的事件。文章 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 mutescurl
so that it does not show the progress meter, and combined with the-S
or--show-error
flag it will ensure thatcurl
shows an error message if it fails. -s
或者--silent
标记给curl
静音使其不显示进度表,并且联合-S
或者--show-error
标记来确保curl
在失败时显示谬误音讯。- The
-L
or--location
flag will tellcurl
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 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 工作区并且配置了必要的环境变量。下一步你将应用一些代码来测试下工作区。
第六步:创立一个简略的程序
当初你曾经设置了工作区,来创立一个“Hello, World!”程序吧。这能够测验工作区配置是否正确,并且给你一个更加相熟 Go 的机会。
因为咱们创立的是单个 Go 源文件,而不是理论我的项目,所以咱们不须要在工作区中执行此操作。
在你的 home 目录,关上一个命令行文本编辑器,例如 nano
,而后创立一个新文件:
nano hello.go
在终端中关上文本文件后,输出你的程序代码:
package main
import "fmt"
func main() {fmt.Println("Hello, World!")
}
按 CTRL
和 X
键退出 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!”通知我,哈哈哈~
有任何问题或想法也欢送评论区留言,大家相互交换,一起学习,共同进步!我就要一个人偷偷卷
本文由 mdnice 多平台公布