关于程序员:每周译Go-How-to-Code-in-Go系列第二篇

50次阅读

共计 6727 个字符,预计需要花费 17 分钟才能阅读完成。

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 文件夹找到它。而后就像关上其余应用程序一样双击终端将其关上。或者,你能够通过按住CMDSPACE 键来启动 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 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 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!")
}

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!”通知我,哈哈哈~

有任何问题或想法也欢送评论区留言,大家相互交换,一起学习,共同进步!我就要一个人偷偷卷

本文由 mdnice 多平台公布

正文完
 0