跳转到主要内容

介绍


Go 是一种在谷歌受挫后诞生的编程语言。开发人员不断地不得不选择一种执行效率高但编译时间长的语言,或者选择一种易于编程但在生产中运行效率低下的语言。 Go 被设计为同时提供所有这三个功能:快速编译、易于编程和生产中的高效执行。

虽然 Go 是一种通用的编程语言,可用于许多不同的编程项目,但它特别适合网络/分布式系统程序,并赢得了“云语言”的美誉。它专注于帮助现代程序员使用一组强大的工具完成更多工作,通过使格式成为语言规范的一部分来消除对格式的争论,以及通过编译为单个二进制文件来简化部署。 Go 易于学习,关键字非常少,这使其成为初学者和经验丰富的开发人员的绝佳选择。

本教程将指导您在本地 Windows 10 机器上安装 Go 并通过命令行设置编程环境。

先决条件

 

  • 您将需要一台具有管理访问权限且连接到 Internet 的 Windows 10 计算机。

第 1 步 - 打开和配置 PowerShell


您将在命令行界面上完成大部分安装和设置,这是一种与计算机交互的非图形方式。也就是说,您将输入文本并通过文本从计算机接收反馈,而不是单击按钮。命令行,也称为 shell,可以帮助您修改和自动化您每天在计算机上执行的许多任务,是软件开发人员必不可少的工具。

PowerShell 是 Microsoft 提供的一个提供命令行 shell 界面的程序。管理任务通过运行 cmdlet(发音为 command-let)来执行,这些命令是 .NET 软件框架的专用类,可以执行操作。 PowerShell 于 2016 年 8 月开源,现在可跨平台使用,适用于 Windows 和 UNIX 系统(包括 Mac 和 Linux)。

要查找 Windows PowerShell,您可以右键单击屏幕左下角的“开始”菜单图标。弹出菜单时,单击搜索,然后在搜索栏中键入 PowerShell。当您看到选项时,右键单击桌面应用程序中的 Windows PowerShell。出于本教程的目的,请选择以管理员身份运行。当您收到一个对话框提示您是否要允许此应用程序对您的 PC 进行更改?单击是。

完成此操作后,您将看到一个基于文本的界面,其中包含如下所示的字符串:

Windows 10 PowerShell

通过键入以下命令退出系统文件夹:

cd ~


然后,您将位于主目录中,例如 PS C:\Users\sammy。

要继续安装过程,您必须首先通过 PowerShell 设置权限。默认情况下配置为以最安全的模式运行,您可以作为管理员设置几个级别的权限:

  • Restricted 是默认的执行策略。在这种模式下,您将无法运行脚本,并且 PowerShell 只能作为交互式 shell 工作。
  • AllSigned 将使您能够运行由受信任的发布者签名的所有脚本和配置文件,这意味着您可能会打开您的计算机,从而面临运行碰巧由受信任的发布者签名的恶意脚本的风险。
  • RemoteSigned 将允许您运行由受信任的发布者签名的从 Internet 下载的脚本和配置文件,如果这些受信任的脚本实际上是恶意的,则再次使您的计算机面临漏洞。
  • 一旦您确认您了解文件是从 Internet 下载的,Unrestricted 将运行从 Internet 下载的所有脚本和配置文件。在这种情况下,不需要数字签名,因此您可能会打开您的计算机,从而面临运行从 Internet 下载的未签名和潜在恶意脚本的风险。

在本教程中,您将使用 RemoteSigned 执行策略来设置当前用户的权限。这将允许 PowerShell 接受受信任的脚本,而不会像使用 Unrestricted 权限那样使权限变得广泛。在 PowerShell 中输入以下内容:

Set-ExecutionPolicy -Scope CurrentUser


然后 PowerShell 将提示您提供执行策略。输入以下内容以使用 RemoteSigned:

RemoteSigned


按 ENTER 后,系统会要求您确认对执行策略的更改。键入字母 y 以使更改生效。您可以通过询问机器上的当前权限来确认这是否有效:

Get-ExecutionPolicy -List


您应该会收到如下所示的输出:

Output
        Scope ExecutionPolicy
        ----- ---------------
MachinePolicy       Undefined
   UserPolicy       Undefined
      Process       Undefined
  CurrentUser    RemoteSigned
 LocalMachine       Undefined


这确认当前用户可以运行从 Internet 下载的受信任脚本。您现在可以继续下载设置 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


cmdlet iwr 或 Invoke-WebRequest 允许您从 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 是一个很小的词,所以使用 golang 作为安装包的术语以及在互联网上搜索与 Go 相关的文章时已变得很普遍。 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


从 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\go


Go 编译和安装工具时,会将它们放在 $GOPATH/bin 目录中。为方便起见,通常将工作区的 bin 子目录添加到 $PATH。您可以使用 PowerShell 中的 setx 命令执行此操作:

setx PATH "$($env:path);$GOPATH\bin"
现在,这将允许您在系统上的任何位置运行通过 Go 工具编译或下载的任何程序。

现在您已经创建了工作空间的根目录并设置了 $GOPATH 环境变量,您将创建具有以下目录结构的未来项目。此示例假设您使用 github.com 作为存储库:

setx PATH "$($env:path);$GOPATH\bin"


如果您正在处理 https://github.com/digitalocean/godo 项目,您可以将其放在以下目录中:

$GOPATH/src/github.com/username/project


以这种方式构建项目将使项目可以使用 go get 工具。它也将有助于以后的可读性。

您可以使用 go get 命令获取 godo 库来验证这一点:

$GOPATH/src/github.com/digitalocean/godo

以这种方式构建项目将使项目可以使用 go get 工具。 它也将有助于以后的可读性。

您可以使用 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 中打开文本文件后,输入您的程序:

hello.go

package main

import "fmt"

func main() {
    fmt.Println("Hello, World!")
}

按 CTRL 和 X 键退出 nano。当提示保存文件时,按 Y,然后按 ENTER。

此代码将使用 fmt 包并使用 Hello, World! 调用 Println 函数!作为论据。这将导致短语 Hello, World!在程序运行时打印到终端。

退出 nano 并返回 shell 后,运行程序:

go run hello.go


您刚刚创建的 hello.go 程序应该会导致 PowerShell 产生以下输出:

Output
Hello, World!


在此步骤中,您使用了一个基本程序来验证您的 Go 工作区是否已正确配置。

结论


恭喜!此时,您已经在本地 Windows 机器上设置了 Go 编程工作区,可以开始编码项目了!

文章链接