介绍
Go 语言的诞生源于谷歌开发者们的挫败感。开发者们常常被迫在两种语言之间做出选择:一种是运行效率高但编译速度慢的语言,另一种是易于编程但生产效率低下的语言。Go 的设计目标是同时兼顾这三者:快速编译、易于编程和高效的生产执行。.
Go 是一种用途广泛的编程语言,可用于各种不同的编程项目,尤其适合网络/分布式系统应用,并被誉为“云计算语言”。它致力于为现代程序员提供一套强大的工具,帮助他们完成更多工作;通过将格式化纳入语言规范,消除了格式化方面的争论;并通过编译成单个二进制文件简化了部署。Go 语言易于学习,关键字数量极少,因此对于初学者和经验丰富的开发人员来说都是不错的选择。.
本教程将指导您在本地 Windows 10 计算机上安装 Go,并通过命令行设置编程环境。.
先决条件
- 您需要一台具有管理员权限且已连接到互联网的 Windows 10 设备。.
步骤 1 – 打开并配置 PowerShell
大部分安装和设置工作将在命令行界面中完成,这是一种非图形化的计算机交互方式。也就是说,您无需点击按钮,而是输入文本,并以文本形式接收来自计算机的反馈。命令行(也称为 shell)可以帮助您修改和自动化许多日常计算机操作,是软件开发人员必不可少的工具。.
PowerShell 是微软开发的一个程序,它提供命令行 shell 界面。管理任务通过执行 cmdlet(发音为“命令”)来完成,cmdlet 是 .NET 软件框架中的特殊类,可以执行各种操作。PowerShell 于 2016 年 8 月开源,现在可在 Windows 和类 Unix 系统(包括 Mac 和 Linux)等多个平台上运行。.
要找到 Windows PowerShell,您可以右键单击屏幕左下角的“开始”菜单图标。菜单出现后,单击“搜索”,然后在搜索栏中键入“PowerShell”。出现选项后,右键单击“Windows PowerShell”桌面应用程序。在本教程中,请选择“以管理员身份运行”。当出现询问您是否允许此程序对您的电脑进行更改的对话框时,单击“是”。.
完成此操作后,您将看到一个基于文本的界面,其中包含类似这样的字符串:
输入以下命令退出系统文件夹:
cd ~
然后您将进入类似 PS C:\Users\sammy 的根目录。.
要继续安装过程,您必须先通过 PowerShell 设置权限。默认情况下,它配置为以最安全模式运行,您可以作为管理员设置多个级别的权限:
- 受限模式是默认的执行策略。在此模式下,您无法运行脚本,PowerShell 只能作为交互式 shell 使用。.
- AllSigned 允许您运行所有由受信任的发布者签名的脚本和配置文件,这意味着您可能会使您的设备面临运行由受信任的发布者签名的恶意脚本的风险。.
- RemoteSigned 允许您运行从互联网下载的、由受信任的发布者签名的脚本和配置文件,但如果这些受信任的脚本确实是恶意的,则您的设备将再次面临安全漏洞。.
- 一旦您发现文件是从互联网下载的,Unrestricted 就会执行所有从互联网下载的脚本和配置文件。在这种情况下,无需数字签名,因此您的设备可能会面临执行未经签名且可能包含恶意代码的脚本的风险。.
在本教程中,您将使用 RemoteSigned 执行策略为当前用户设置权限。这样,PowerShell 就可以接受受信任的脚本,而无需像使用不受限制的许可证那样施加过多的权限限制。请在 PowerShell 中输入以下命令:
Set-ExecutionPolicy -Scope CurrentUser
PowerShell 接下来会要求您提供执行策略。要使用 RemoteSigned,请输入以下内容:
RemoteSigned
按下回车键后,系统会提示您确认执行策略的更改。输入 y 以应用更改。您可以通过请求设备上的当前权限来验证更改是否已完成:
Get-ExecutionPolicy -List
你应该会看到类似这样的输出:
Output
Scope ExecutionPolicy
----- ---------------
MachinePolicy Undefined
UserPolicy Undefined
Process Undefined
CurrentUser RemoteSigned
LocalMachine Undefined这验证了当前用户可以运行从互联网下载的可信脚本。现在您可以继续下载设置 Go 开发环境所需的文件。.
步骤 2 – 安装 Chocolatey 软件包管理器
软件包管理器是一套用于自动化安装过程的软件工具。这包括初始安装、软件升级和配置,以及在需要时卸载软件。它们将软件安装文件集中存储在一个位置,并能以常用格式维护系统上的所有软件包。.
Chocolatey 是一个专为 Windows 设计的命令行包管理器,其工作方式类似于 Linux 上的 apt-get。Chocolatey 提供开源版本,可帮助您快速安装程序和工具。您可以使用它来下载开发环境所需的各种软件包。.
安装脚本之前,请先阅读脚本内容,确认您接受它将对您的计算机所做的更改。为此,请使用 .NET 脚本框架下载 Chocolatey 脚本,并在终端窗口中显示该脚本。.
首先创建一个名为 $script 的 WebClient 对象,该对象与 Internet Explorer 共享 Internet 连接设置:
$script = New-Object Net.WebClient
通过将 $script 对象与 | 管道符传递给 Get-Member 类,查看可用选项:
$script | Get-Member
这将返回此 WebClient 对象的所有成员(属性和方法):
. . .
[secondary_label Snippet of Output]
DownloadFileAsync Method void DownloadFileAsync(uri address, string fileName), void DownloadFileAsync(ur...
DownloadFileTaskAsync Method System.Threading.Tasks.Task DownloadFileTaskAsync(string address, string fileNa...
DownloadString Method string DownloadString(string address), string DownloadString(uri address) #method we will use
DownloadStringAsync Method void DownloadStringAsync(uri address), void DownloadStringAsync(uri address, Sy...
DownloadStringTaskAsync Method System.Threading.Tasks.Task[string] DownloadStringTaskAsync(string address), Sy…
. . .通过查看输出结果,您可以找到用于在 PowerShell 窗口中显示脚本和签名的 DownloadString 方法。使用此方法可以检查脚本:
$script.DownloadString("https://chocolatey.org/install.ps1")
查看脚本后,在 PowerShell 中输入以下命令安装 Chocolatey:
iwr https://chocolatey.org/install.ps1 -UseBasicParsing | iex
iwr 或 Invoke-WebRequest cmdlet 允许您从 Web 提取数据。它将脚本传递给 iex 或 Invoke-Expression cmdlet,后者执行脚本内容并执行 Chocolatey 包管理的安装。.
让 PowerShell 安装 Chocolatey。安装完成后,您可以使用 choco 命令开始安装其他工具。.
如果将来需要升级 Chocolatey,请运行以下命令:
choco upgrade chocolatey
通过安装包管理器,您可以安装 Go 编程环境所需的其他组件。.
步骤 3 – 安装 Nano 文本编辑器(可选)
在这一步中,您将安装 nano,这是一个使用命令行界面的文本编辑器。您可以使用 nano 直接在 PowerShell 中编写程序。这不是一个强制性步骤,因为您也可以使用带有图形用户界面的文本编辑器,例如记事本。本教程建议使用 nano,因为它有助于您熟悉 PowerShell 的使用。.
使用 Chocolatey 安装 Nano:
choco install -y nano
-y 标志会自动确认您要运行脚本,而无需再次确认。.
安装完 nano 编辑器后,你就可以使用 nano 命令创建新的文本文件。在本教程的后续部分,你将使用它来编写你的第一个 Go 程序。.
步骤 4 – 安装 Go
就像你在上一步中使用 nano 一样,你将使用 Chocolatey 安装 Go:
choco install -y golang
注:由于 go 是一个非常短的单词,因此在安装软件包和搜索 Go 相关文章时,通常使用 golang 这个术语。Golang 这个术语源自 Go 的官方网站 golang.org。.
PowerShell 现在将安装 Go,并在安装过程中在 PowerShell 中生成输出。安装完成后,您应该会看到以下输出:
Output
Environment Vars (like PATH) have changed. Close/reopen your shell to
see the changes (or in powershell/cmd.exe just type `refreshenv`).
The install of golang was successful.
Software installed as 'msi', install location is likely default.
Chocolatey installed 1/1 packages.
See the log for details (C:\ProgramData\chocolatey\logs\chocolatey.log).安装完成后,您现在可以确认 Go 已安装。要查看更改,请以管理员身份关闭并重新打开 PowerShell,然后检查本地计算机上的 Go 版本:
go version
您将得到类似如下的输出:
Output
go version go1.12.1 windows/amd643.7.0安装 Go 之后,您可以为您的开发项目设置工作区。.
步骤 5 – 创建您的 Go 工作区
现在你已经安装了 Chocolatey、nano 和 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 repository metadata
├── account.go # package source
├── account_test.go # test source
├── ...
├── timestamp.go
├── timestamp_test.go
└── util
├── droplet.go
└── droplet_test.go从 Go 1.8 版本开始,Go 工作区的默认目录是用户主目录,其中包含一个名为 go 或 $HOME/go 的子目录。如果您使用的是 1.8 之前的 Go 版本,将工作区放在 $HOME/go 位置仍然是最佳实践。.
执行以下命令进入 $HOME 目录:
cd $HOME
接下来,创建 Go 工作区的目录结构:
mkdir go/bin, go/src
这样可以确保当前存在以下目录结构:
└── $HOME
└── go
├── bin
└── src在 Go 1.8 之前,需要设置一个名为 $GOPATH 的本地环境变量。虽然现在不再强制要求,但仍然建议这样做,因为许多第三方工具仍然依赖于此变量的设置。.
由于您使用 Chocolatey 进行安装,因此该环境变量应该已经设置好了。您可以使用以下命令进行验证:
$env:GOPATH
你应该看到以下输出,其中用户名替换为 sammy:
Output
C:\Users\sammy\goGo 编译并安装工具时,会将它们放置在 $GOPATH/bin 文件夹中。为了方便起见,通常将工作区的 bin 子目录添加到 $PATH 中。您可以使用 PowerShell 中的 setx 命令来完成此操作:
setx PATH "$($env:path);$GOPATH\bin"
现在,您可以使用 Go 工具在系统上的任何位置运行您编译或下载的任何程序。.
现在您已经创建了工作区根目录并设置了 $GOPATH 环境变量,接下来您将使用以下目录结构创建项目。本示例假设您使用 github.com 作为代码仓库:
$GOPATH/src/github.com/username/project
如果你正在开发 https://github.com/digitalocean/godo 项目,你应该这样列出它:
$GOPATH/src/github.com/digitalocean/godo
以这种方式组织项目,可以让项目更容易被 GoGet 工具访问,也有助于提高后续的可读性。.
您可以使用 go get 命令获取 godo 库来验证这一点:
go get github.com/digitalocean/godo
注意:如果您尚未安装 Git,Windows 将弹出对话框询问您是否要安装。单击“是”继续,并按照安装说明进行操作。.
通过列出目录,可以看到 godo 软件包已成功下载:
ls $env:GOPATH/src/github.com/digitalocean/godo
您将得到类似这样的输出:
Output
Directory: C:\Users\sammy\go\src\github.com\digitalocean\godo
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 4/10/2019 2:59 PM util
-a---- 4/10/2019 2:59 PM 9 .gitignore
-a---- 4/10/2019 2:59 PM 69 .travis.yml
-a---- 4/10/2019 2:59 PM 1592 account.go
-a---- 4/10/2019 2:59 PM 1679 account_test.go
-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
.
.
.
-a---- 4/10/2019 2:59 PM 5076 vpcs.go
-a---- 4/10/2019 2:59 PM 4309 vpcs_test.go至此,您已创建了一个 Go 工作区并配置了必要的环境变量。接下来,您将使用一些代码测试该工作区。.
步骤 6 – 创建一个简单的应用程序
现在你的 Go 工作区已经设置好了,接下来创建一个简单的«Hello, World!»程序。这可以确保你的工作区配置正确,也能让你更好地了解 Go 语言。由于你创建的是 Go 源文件,而不是实际的项目,所以你不需要登录到工作区即可完成此操作。.
从您的主目录打开一个命令行文本编辑器,例如 nano,并创建一个新文件:
nano hello.go
在 nano 中打开文本文件后,输入你的程序:
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}按 CTRL 和 X 退出 nano 编辑器。当提示保存文件时,按 Y,然后按 ENTER。.
这段代码使用了 fmt 包,并调用了 Println 函数,参数为“Hello, World!”。程序运行时,终端会打印出“Hello, World!”这句话。.
退出 nano 编辑器并返回 shell 后,运行该程序:
go run hello.go
您创建的 hello.go 程序应该使 PowerShell 产生以下输出:
Output
Hello, World!在这一步中,您使用了一个基本应用程序来验证您的 Go 工作区是否配置正确。.
结果
恭喜!至此,您已在本地 Windows 计算机上设置了 Go 编程工作区,可以开始编写代码项目了!










