介绍
开发人员不断地不得不选择一个有效执行但需要很长时间的编译语言,或者选择一个易于编程但在生产中运行不有效的语言。
虽然Go是一个多功能的编程语言,可以用于许多不同的编程项目,但它特别适合网络 / 分布式系统程序,并赢得了云的语言
的声誉。它专注于帮助现代程序员用强大的工具组做更多,通过使格式成为语言规格的一部分来消除对格式的争论,以及通过编译到单个二进制来轻松部署。
本教程将指导您在本地 Windows 10 机器上安装 Go,并通过命令行设置编程环境。
前提条件
您将需要具有连接到互联网的管理访问功能的 Windows 10 机器。
步骤 1 – 打开和配置 PowerShell
您将在命令行界面上完成大部分安装和设置,这是一种与计算机交互的非图形方式,也就是说,而不是点击按钮,您将键入文本并通过文本收到计算机的反馈。
PowerShell是微软的程序,提供命令行壳接口. 管理任务是通过运行 cmdlets,发音 command-lets,这是可以执行操作的.NET(https://dotnet.microsoft.com/)软件框架的专门类别。
要找到 Windows PowerShell,您可以右键单击屏幕左下角的 开始 ** 菜单图标。当菜单出现时,请单击 ** 搜索 ,然后在搜索栏中键入 PowerShell
. 当您被介绍的选项时,请右键单击 ** Windows PowerShell** 从桌面应用程序。 对于本教程的目的,请选择 ** 运行为管理员** . 当您被提示使用一个对话框询问 ** 您想允许这个应用程序对您的PC进行更改?** 点击 ** 是的** 。
一旦你这样做,你会看到一个基于文本的界面,它有一个字符串,看起来像这样:
从系统文件夹中切换,键入以下命令:
1cd ~
然后,您将位于一个主目录中,例如PS C:\Users\sammy
。
要继续安装过程,您必须先通过 PowerShell 设置权限,默认情况下配置为在最安全模式下运行,您可以设置几个权限级别作为管理员:
在此模式下,您将无法运行脚本,PowerShell将只作为一个交互式壳工作。
- AllSigned 将允许您运行由受信任出版商签署的所有脚本和配置文件,这意味着您可能会打开您的机器,以运行由受信任出版商签署的恶意脚本的风险。
- RemoteSigned 将允许您运行由受信任出版商签署的互联网下载的脚本和配置文件,重新打开您的机器,如果这些受信任脚本实际上是恶意的漏洞。 1* Unrestricted 将运行从互联网下载的所有脚本和配置文件,一旦您确认该文件是从下载中下载的。
在本教程中,您将使用RemoteSigned
执行策略来设置当前用户的权限,这将允许PowerShell接受受信任的脚本,而不会使权限像无限制
权限一样广泛。
1Set-ExecutionPolicy -Scope CurrentUser
然后,PowerShell 会提示您提供执行策略. 输入以下内容以使用RemoteSigned
:
1RemoteSigned
一旦按下ENTER
,您将被要求确认对执行策略的更改。输入字母y
以允许更改生效。
1Get-ExecutionPolicy -List
你应该收到一个看起来像这样的输出:
1[secondary_label Output]
2 Scope ExecutionPolicy
3 ----- ---------------
4MachinePolicy Undefined
5 UserPolicy Undefined
6 Process Undefined
7 CurrentUser RemoteSigned
8 LocalMachine Undefined
这确认了当前用户可以运行从互联网下载的可信脚本,您现在可以继续下载我们需要设置我们的Go编程环境的文件。
步骤 2:安装包管理器 Chocolatey
软件包管理器是一个软件工具的集合,用于自动化安装过程,包括初始安装、升级和配置软件,以及根据需要删除软件。
Chocolatey是为Windows构建的命令行包管理器,它像在Linux上的apt-get
一样工作。在开源版本中,Chocolatey将帮助您快速安装应用程序和工具。
在安装脚本之前,请阅读它以确认您对它将对您的机器进行的更改感到满意. 要做到这一点,请使用.NET 脚本框架下载并在终端窗口中显示 Chocolatey 脚本。
首先,创建一个名为$script
的 WebClient 对象,该对象与 Internet Explorer 共享 Internet 连接设置:
1$script = New-Object Net.WebClient
查看可用的选项,将$script
对象与``插入到Get-Member
类:
1$script | Get-Member
这将返回本 WebClient 对象的所有成员(属性和方法):
1. . .
2[secondary_label Snippet of Output]
3DownloadFileAsync Method void DownloadFileAsync(uri address, string fileName), void DownloadFileAsync(ur...
4DownloadFileTaskAsync Method System.Threading.Tasks.Task DownloadFileTaskAsync(string address, string fileNa...
5DownloadString Method string DownloadString(string address), string DownloadString(uri address) #method we will use
6DownloadStringAsync Method void DownloadStringAsync(uri address), void DownloadStringAsync(uri address, Sy...
7DownloadStringTaskAsync Method System.Threading.Tasks.Task[string] DownloadStringTaskAsync(string address), Sy…
8 . . .
通过查看输出,您可以识别用于在PowerShell窗口中显示脚本和签名的DownloadString
方法。
1$script.DownloadString("https://chocolatey.org/install.ps1")
检查脚本后,通过输入 PowerShell 来安装 Chocolatey:
1iwr https://chocolatey.org/install.ps1 -UseBasicParsing | iex
cmdlet iwr
,或 Invoke-WebRequest
,允许您从网络中提取数据. 这将将脚本传输到 iex
,或 Invoke-Expression
cmdlet,这将执行脚本的内容并运行 Chocolatey 包管理器的安装。
允许 PowerShell 安装 Chocolatey. 一旦完全安装,您可以使用choco
命令开始安装其他工具。
如果您需要在未来任何时候升级 Chocolatey,请运行以下命令:
1choco upgrade chocolatey
安装了包管理器,您可以安装 Go 编程环境所需的其余内容。
步骤 3 — 安装文本编辑器 Nano (可选)
在此步骤中,您将安装使用命令行接口的文本编辑器 nano。您可以使用 nano 直接在 PowerShell 中编写程序。这不是一个强制性的步骤,因为您还可以使用具有图形用户界面的文本编辑器,如 Notepad。本教程建议使用 nano,因为它将帮助您习惯使用 PowerShell。
使用 Chocolatey 来安装 nano:
1choco install -y nano
-y
旗帜自动确认你想运行脚本而不被要求确认。
一旦安装了nano,您可以使用nano
命令创建新的文本文件,您将在本教程中稍后使用它来编写您的第一个Go程序。
步骤4:安装
就像你在上一个步骤中做过的 nano 一样,你会使用 Chocolatey 来安装 Go:
1choco install -y golang
<$>[注]
注: 由于 ** go** 是一个小词,所以使用golang
作为安装包的术语,并在互联网上搜索与Go相关的文章时变得常见。
PowerShell 现在将安装 Go,在该过程中在 PowerShell 中生成输出. 安装完成后,您应该看到以下输出:
1[secondary_label Output]
2Environment Vars (like PATH) have changed. Close/reopen your shell to
3see the changes (or in powershell/cmd.exe just type `refreshenv`).
4The install of golang was successful.
5 Software installed as 'msi', install location is likely default.
6
7Chocolatey installed 1/1 packages.
8See the log for details (C:\ProgramData\chocolatey\logs\chocolatey.log).
安装完成后,您现在将确认 Go 已安装. 若要查看更改,关闭并重新打开 PowerShell 作为管理员,然后检查在本地计算机上可用的 Go 版本:
1go version
您将收到类似于以下的输出:
1[secondary_label Output]
2go version go1.12.1 windows/amd643.7.0
一旦安装了Go,您可以为您的开发项目设置工作区。
步骤5:创建你的工作空间
现在您已经安装了 Chocolatey、Nano 和 Go,您可以创建自己的编程工作区。
Go 工作区将在其根源中包含两个目录:
src
: 包含 Go 源文件的目录. 源文件是您使用 Go 编程语言编写的文件。 源文件由 Go 编译器用于创建可执行的二进制文件。bin
: 包含 Go 工具构建和安装的可执行文件的目录。
src
子目录可能包含多个版本控制存储库(如 Git, Mercurial和 Bazaar)。当您的程序导入第三方库时,您将看到类似github.com
或golang.org
的目录。如果您使用github.com
等代码存储库,您还将将您的项目和源文件置于该目录之下。这允许您在项目中导入代码。
以下是典型的工作空间可能看起来像什么:
1.
2├── bin
3│ ├── buffalo # command executable
4│ ├── dlv # command executable
5│ └── packr # command executable
6└── src
7 └── github.com
8 └── digitalocean
9 └── godo
10 ├── .git # Git repository metadata
11 ├── account.go # package source
12 ├── account_test.go # test source
13 ├── ...
14 ├── timestamp.go
15 ├── timestamp_test.go
16 └── util
17 ├── droplet.go
18 └── droplet_test.go
Go 工作区的默认目录为 1.8 时的用户主目录,其子目录为go
或$HOME/go
。
发出以下命令来导航到$HOME
目录:
1cd $HOME
接下来,为您的 Go 工作区创建目录结构:
1mkdir go/bin, go/src
这将确保下列目录结构现在处于运行状态:
1└── $HOME
2 └── go
3 ├── bin
4 └── src
在 Go 1.8 之前,需要设置一个名为$GOPATH
的本地环境变量,虽然不再明确要求这样做,但仍被认为是一种良好的做法,因为许多第三方工具仍然依赖于该变量设置。
由于您在安装过程中使用了 Chocolatey,因此此环境变量应该已经设置了,您可以使用以下命令来验证:
1$env:GOPATH
您应该看到以下输出,您的用户名代替sammy
:
1[secondary_label Output]
2C:\Users\sammy\go
当Go编译和安装工具时,它会将它们放入$GOPATH/bin
目录中。为了方便,您可以将工作区的bin
子目录添加到您的$PATH
。
1setx PATH "$($env:path);$GOPATH\bin"
这将允许您在您的系统中的任何地方运行您编译或下载的任何程序。
现在你已经创建了工作区的根和你的$GOPATH
环境变量集,你将创建你的未来的项目,使用以下目录结构。
1$GOPATH/src/github.com/username/project
如果你正在工作的 https://github.com/digitalocean/godo项目,你会把它放在下面的目录:
1$GOPATH/src/github.com/digitalocean/godo
以这种方式结构您的项目将使项目可用与Go Get
工具,它也将有助于阅读。
您可以通过使用go get
命令来检索godo
库来验证这一点:
1go get github.com/digitalocean/godo
<$>[注]
注: 如果您没有安装git
,Windows 将打开一个对话框,询问您是否要安装它。
您可以看到它通过列出目录成功下载了godo
包:
1ls $env:GOPATH/src/github.com/digitalocean/godo
您将收到类似于此的输出:
1[secondary_label Output]
2 Directory: C:\Users\sammy\go\src\github.com\digitalocean\godo
3
4Mode LastWriteTime Length Name
5---- ------------- ------ ----
6d----- 4/10/2019 2:59 PM util
7-a---- 4/10/2019 2:59 PM 9 .gitignore
8-a---- 4/10/2019 2:59 PM 69 .travis.yml
9-a---- 4/10/2019 2:59 PM 1592 account.go
10-a---- 4/10/2019 2:59 PM 1679 account_test.go
11-rw-r--r-- 1 sammy staff 2892 Apr 5 15:56 CHANGELOG.md
12-rw-r--r-- 1 sammy staff 1851 Apr 5 15:56 CONTRIBUTING.md
13.
14.
15.
16-a---- 4/10/2019 2:59 PM 5076 vpcs.go
17-a---- 4/10/2019 2:59 PM 4309 vpcs_test.go
在此步骤中,您创建了 Go 工作区并配置了所需的环境变量。
步骤6:创建一个简单的程序
现在你已经设置了 Go 工作区,创建一个简单的你好,世界!
程序,这将确保你的工作区配置正确,并为你提供机会更熟悉 Go. 因为你正在创建一个单一的 Go 源文件,而不是一个实际的项目,你不需要在你的工作区做这件事。
从您的主目录中,打开命令行文本编辑器,例如 nano,并创建一个新的文件:
1nano hello.go
一旦文本文件在 nano 中打开,请输入您的程序:
1[label hello.go]
2package main
3
4import "fmt"
5
6func main() {
7 fmt.Println("Hello, World!")
8}
输出nano
按CTRL
和X
键,当被要求保存文件时,按Y
,然后按ENTER
。
此代码将使用fmt
包,并将Println
函数称为Hello, World!
作为参数,这将导致程序运行时将Hello, World!
短语打印到终端。
一旦你离开nano
并返回你的壳,运行该程序:
1go run hello.go
你刚刚创建的 hello.go 程序应该使 PowerShell 产生以下输出:
1[secondary_label Output]
2Hello, World!
在此步骤中,您使用了一个基本程序来验证您的 Go 工作区是否正确配置。
结论
恭喜您! 此时您已在本地 Windows 机器上设置了 Go 编程工作区,并可以开始编码项目!