共计 5497 个字符,预计需要花费 14 分钟才能阅读完成。
Gopher 们大家好,从本周开始咱们将每周定期公布《How-To-Code-in-Go》系列翻译文章,共蕴含 40 篇内容的学习。
《How-To-Code-in-Go》系列文章是现阶段最新的 Go 语言学习书,心愿每位 gopher 们可能坚持不懈,每篇都认真学习,好好排汇其中的要点、精髓,咱们一起加油,共同进步!谁都不能够落伍~
前情提要~
《How-To-Code-in-Go》采纳 Hugo 公布。欢送大家通过 issue 提供倡议,也能够通过 pull requests 来独特参加奉献。
装置完 hugo
之后,须要先同步主题文件:
git submodule update --init --recursive
同步实现后,可在根目录执行以下指令来测试网站:
hugo server
文档在 content/zh/docs
目录下,批改后能够通过 pull requests 提交。
明天咱们来一起学习 第一篇 文章:
如何在 Ubuntu 18.04 上装置 Go 和设置本地编程环境
Go 语言简介
Go 是一门在 Google 备受挫折后而诞生的语言。开发者不得不频繁地在两种语言中抉择,要么抉择一门执行效率高然而编译工夫长的语言,要么抉择一种易于编程但在生产中运行效率低下的语言。Go 被设计为 同时提供所有这三个性能:疾速编译、易于编程和生产中的高效执行。
尽管 Go 是一门通用的编程语言,可用于许多不同类型的编程我的项目,但它 特地适宜网络 / 分布式系统我的项目,博得了“云语言”的美誉。Go 语言专一于通过一组弱小的工具来帮忙古代程序员实现更多的工作,通过使格局成为语言标准的一部分来打消对格局的争执,以及通过编译为单个二进制文件来简化部署。Go 易于学习,关键字非常少,这使其成为不论是初学者还是经验丰富的开发人员的不二之选。
本教程将领导你通过命令行来装置 Go 和配置 Go 编程环境。本教程特地针对 Ubuntu 18.04 的装置过程,然而对于其余 Debian Linux 发行版也同样实用。
装置前提
你须要一台装置了 Ubuntu 18.04 的电脑或者虚拟机,并且有对该计算机的管理员拜访权限和网络连接。您能够通过 Ubuntu 18.04 版本页面 下载此操作系统。
第一步:装置 Go
在这一步,你通过 Go 官网下载页面下载最新版本来装置 Go。
为此,你须要找到最新二进制版本压缩包的 URL。你还要留神旁边列出的 SHA256 哈希值,因为你将用它来验证下载的文件。
你将通过命令行来实现装置和设置,这是一种与计算机交互的非图形化形式。也就是说,你输出的是文本,而后也是通过文本失去计算机的反馈,而不是点击按钮。
命令行,也就是咱们熟知的 shell 或者 终端,能够帮忙你批改或自动化很多你每天执行在计算机上的工作,这是软件开发人员必备的工具。只管有很多终端命令须要学习,然而这些命令能够让你做更弱小的事件。无关命令行的更多信息,请查看 Linux 终端简介 教程。
在 Ubuntu 18.04 上,你能够通过点击屏幕左上角的 Ubuntu 图标并在搜寻栏中输出 terminal
来找到终端程序。点击终端程序图标来关上终端。或者你能够在键盘上同时按住的“CTRL”、“ALT”和“T”键来主动关上终端程序。
终端关上之后,你能够手动装置 Go 二进制。尽管能够通过包管理工具,比方 apt-get
,然而通过手动装置能够帮忙你了解一个无效的 Go 工作区零碎外面任何必要的配置信息的批改。
下载 Go 之前,确保你在 home (~
) 目录:
cd ~
依据从官网 Go 下载页面复制的压缩包 URL,应用 curl
命令拉取下载:
curl -LO https://dl.google.com/go/go1.12.1.linux-amd64.tar.gz
接下来,应用 sha256sum
命令来校验压缩包:
sha256sum go1.12.1.linux-amd64.tar.gz
运行下面命令显示的哈希值应该和下载页面的哈希值统一,如果不统一的话,那么这个压缩包就不是一个无效文件,须要从新下载。
Output | |
2a3fdabf665496a0db5f41ec6af7a9b15a49fbe71a85a50ca38b1f13a103aeec go1.12.1.linux-amd64.tar.gz |
接下来,解压下载的文件并将其装置到零碎所需地位。个别都是放在 /usr/local
目录上面:
sudo tar -xvf go1.12.1.linux-amd64.tar.gz -C /usr/local
那么在 /usr/local
目录上面有一个 go
目录。
留神:只管 /usr/local/go
是官网举荐的地位,但有些用户可能更喜爱或须要不同的门路。
在这一步中,你在 Ubuntu 18.04 机器上下载并装置了 Go。接下来你将配置 Go 的工作区。
第二步:创立你的 Go 工作区
装置完 Go 之后,你能够创立你的编码工作区。Go 语言的工作区在其根目录下蕴含两个目录:
src
: 该目录蕴含 Go 的源文件。所谓源文件就是你用 Go 编程语言写的文件。源文件被 Go 编译器构建成可执行的二进制文件。bin
: 该目录蕴含了 Go 工具构建和装置的可执行文件。可执行文件就是运行在你零碎上并执行工作的二进制文件。通常是你的源码或者是其余下载的 Go 源代码编译的程序。
src
子目录可能蕴含多个版本控制仓库(例如 Git, Mercurial 和 Bazaar)。这容许你在你的我的项目中标准导入代码。标准导入就是援用齐全限定包的导入,例如 github.com/digitalocean/godo
。
当你引入第三方库的时候,你能够看到相似 github.com
, golang.org
或其余目录,如果你应用的是 github.com
之类的代码仓库,你还将把我的项目和源文件放在该目录下。咱们将在此步骤的前面局部探讨这个概念。
上面是典型的工作区目录构造:
. | |
├── bin | |
│ ├── buffalo # command executable | |
│ ├── dlv # command executable | |
│ └── packr # command executable | |
└── src | |
└── github.com | |
└── digitalocean | |
└── godo | |
├── .git # Git repository 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 ~/.profile
通过上面的命令设置你的 $GOPATH
:
~/.profile | |
export GOPATH=$HOME/go |
当 Go 编译和装置工具时,会将他们放在 $GOPATH/bin
目录。为不便起见,通常将工作区的 /bin
子目录增加到 ~/.profile
中的 PATH
中:
~/.profile | |
export PATH=$PATH:$GOPATH/bin |
这将容许你在零碎上的任何地位运行通过 Go 工具编译或下载的任何程序。
最初,你须要将 go
二进制文件增加到 PATH
中。你能够通过在行尾增加 /usr/local/go/bin
来实现:
~/.profile | |
export PATH=$PATH:$GOPATH/bin:/usr/local/go/bin |
将 /usr/local/go/bin
增加到 $PATH
中,能够使所有 Go 工具都能够在零碎上的任何地位应用。
为了更新你的 shell 配置,请应用上面的命令来加载全局变量:
. ~/.profile
您能够通过应用 echo
命令并查看其输入,来验证你的 $PATH
是否已更新:
echo $PATH
你将看到你的 $GOPATH/bin
显示在你的主目录中。如果你以 root
身份登录,你将在门路中看到 /root/go/bin
。
Output | |
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/root/go/bin:/usr/local/go/bin |
你还会看到 /usr/local/go/bin
的 Go 工具的门路:
Output | |
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/root/go/bin:/usr/local/go/bin |
通过查看 Go 的以后版本来验证装置:
go version
咱们应该失去相似上面的输入:
Output | |
go version go1.12.1 linux/amd64 |
当初你曾经创立了工作区的根目录并设置了 $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
库的内容并在你的计算机上创立 $GOPATH/src/github.com/digitalocean/godo
目录。
你能够通过列出目录来查看下看看是否胜利下载了 godo
包:
ll $GOPATH/src/github.com/digitalocean/godo
你应该看到相似上面这样的输入:
>>>>>>> main | |
Outputdrwxr-xr-x 4 root root 4096 Apr 5 00:43 ./ | |
drwxr-xr-x 3 root root 4096 Apr 5 00:43 ../ | |
drwxr-xr-x 8 root root 4096 Apr 5 00:43 .git/ | |
-rwxr-xr-x 1 root root 8 Apr 5 00:43 .gitignore* | |
-rw-r--r-- 1 root root 61 Apr 5 00:43 .travis.yml | |
-rw-r--r-- 1 root root 2808 Apr 5 00:43 CHANGELOG.md | |
-rw-r--r-- 1 root root 1851 Apr 5 00:43 CONTRIBUTING.md | |
. | |
. | |
. | |
-rw-r--r-- 1 root root 4893 Apr 5 00:43 vpcs.go | |
-rw-r--r-- 1 root root 4091 Apr 5 00:43 vpcs_test.go |
在这一步中,你创立了一个 Go 工作区并且配置了必要的环境变量。下一步你将应用一些代码来测试下工作区。
第三步:创立一个简略的程序
当初你曾经设置了工作区,来创立一个“Hello, World!”程序吧。这能够测验工作区配置是否正确,并且给你一个更加相熟 Go 的机会。因为咱们创立的是单个 Go 源文件,而不是理论我的项目,所以咱们不须要在工作区中执行此操作。
在你的 home 目录,关上一个命令行文本编辑器,例如 nano
,而后创立一个新文件:
nano hello.go
在新文件里写下你的程序:
package main | |
import "fmt" | |
func main() {fmt.Println("Hello, World!") | |
} |
该代码应用了 fmt
包并且应用 Hello, World!
作为参数调用了 Println
函数。这将导致短语 Hello, World!
在程序运行时打印到终端上。
按 CTRL
和 X
键退出 nano
。当提醒保留文件时,按 Y
,而后按 ENTER
退出。
退出 nano
返回 shell 之后,运行程序:
go run hello.go
hello.go
程序会使终端产生以下输入:
Output | |
Hello, World! |
在此步骤中,你应用了一个简略小程序来验证是否正确配置了 Go 工作区。
总结
祝贺!至此,你曾经在 Ubuntu 机器上设置了 Go 编程工作区,能够开始写我的项目了!
明天的学习就到这里啦,大家若有任何问题或想法欢送评论区留言或私发进行发问与交换。要晓得,你不是一个人在战斗!小 G 始终在~
本文由 mdnice 多平台公布