「每周譯Go」Windows 系統(tǒng)的Gopher們久等了?。?/h1>
Windows 系統(tǒng)的用戶們久等了 !!周一我們介紹了《如何在 macOS 上安裝 Go 和設置本地編程環(huán)境的操作》,具體請參考「每周譯Go」Hello , Gophers !《How to Code in Go》第二彈來了。今天我們將介紹《如何在 Windows 10 上安裝 Go 和設置本地編程環(huán)境》,以供不同系統(tǒng)使用者選擇學習。
話不多說,我們開始 :
如何在 Windows 10 上安裝 Go 和設置本地編程環(huán)境
Go 語言簡介
Go 是一門在 Google 備受挫折后而誕生的語言。開發(fā)者不得不頻繁地在兩門語言中選擇,要么選擇一門執(zhí)行效率高但是編譯時間長的語言,要么選擇一種易于編程但在生產中運行效率低下的語言。Go 被設計為同時提供所有這三個功能:快速編譯、易于編程和生產中的高效執(zhí)行。
雖然 Go 是一門通用的編程語言,可用于許多不同類型的編程項目。但它特別適合網絡/分布式系統(tǒng)項目,贏得了“云語言”的美譽。Go 語言專注于通過一組強大的工具來幫助現(xiàn)代程序員完成更多的工作,通過使格式成為語言規(guī)范的一部分來消除對格式的爭論,以及通過編譯為單個二進制文件來簡化部署。Go 易于學習,關鍵字非常少,這使其成為不論是初學者還是經驗豐富的開發(fā)人員的不二之選。
本教程將指導你通過命令行來安裝 Go 和配置 Go 編程環(huán)境。本教程特別針對 Ubuntu 18.04 的安裝過程,但是對于其他 Debian Linux 發(fā)行版也同樣適用。
安裝前提
你需要一臺擁有管理員權限并且能夠連接上網的 Windows 10 的電腦。
第一步:打開并配置 PowerShell
我們將會在終端上完成我們大部分的安裝和設置,這是一種與計算機交互的非圖形化方式。也就是說,你輸入的是文本,然后也是通過文本得到計算機的反饋,而不是點擊按鈕。命令行,也就是我們熟知的 shell 或者 終端 ,可以幫助你修改或自動化很多你每天執(zhí)行在計算機上的任務,這是軟件開發(fā)人員必備的工具。
PowerShell 是微軟提供的一個命令行 shell 界面的程序。通過 cmdlets (發(fā)音為 command-lets )來執(zhí)行管理任務,它們是 .NET 軟件框架可以執(zhí)行操作的專用類。PowerShell 于 2016 年 8 月開源,現(xiàn)在可跨平臺使用,適用于 Windows 和 UNIX 系統(tǒng)(包括 Mac 和 Linux)。
如何找到 Windows PowerShell 呢,你可以右擊屏幕左下角的開始按鈕,彈出菜單后,點擊搜索,然后在搜索欄中輸入 PowerShell 。當你看到選項時,右擊桌面應用程序中的 Windows PowerShell。出于本教程的目的,選擇以管理員身份運行。當系統(tǒng)提示你出現(xiàn)一個對話框,詢問是否允許此應用程序對您的 PC 進行更改? 單擊是。
完成此操作后,你將看到一個基于文本的界面,其中包含如下所示的字符串:

Windows 10 PowerShell 輸入以下命令退出系統(tǒng)文件夾:
cd ~
然后你會進入到主目錄中,比如 PS C:\Users\sammy
要繼續(xù)安裝過程,你必須通過 PowerShell 設置權限。默認情況下以最安全的模式運行,作為管理員你可以設置以下幾個級別的權限:
Restricted 是默認執(zhí)行策略。在這種模式下,你將無法運行腳本,并且 PowerShell 只能作為交互式 shell 工作。 AllSigned 將使你能夠運行由受信任的發(fā)布者簽名的所有腳本和配置文件,這意味著可能讓計算機面臨著運行惡意腳本的風險,這腳本碰巧由受信任發(fā)布者簽名。 RemoteSigned 將允許你運行由受信任的發(fā)布者簽名的從 Internet 下載的腳本和配置文件,如果這些受信任的腳本實際上是惡意的,則再次使你的計算機暴露在漏洞面前。. Unrestricted 將運行從 Internet 下載的所有腳本和配置文件,只要你確認你知曉該文件是從 Internet 下載的。在這種情況下,不需要數(shù)字簽名,因此你可能會讓你計算機面臨運行從 Internet 下載的未簽名和潛在惡意腳本的風險。
在本教程中,你將使用 RemoteSigned 執(zhí)行策略來設置當前用戶的權限。這將允許 PowerShell 接受受信任的腳本,而不會使權限像 Unrestricted 權限那樣廣泛。在 PowerShell 中輸入以下內容:
Set-ExecutionPolicy -Scope CurrentUser
然后 PowerShell 將提示你為你提供一個可執(zhí)行策略。輸入以下內容來使用RemoteSigned 策略:
RemoteSigned
一旦你按了回車鍵,系統(tǒng)會要求你確認對執(zhí)行政策的更改。輸入字母 y 以使更改生效。你可以通過詢問機器上的當前權限來確認這是否生效:
Get-ExecutionPolicy -List
你應該會收到如下所示的輸出:
Output
Scope ExecutionPolicy
----- ---------------
MachinePolicy Undefined
UserPolicy Undefined
Process Undefined
CurrentUser RemoteSigned
LocalMachine Undefined
這表明當前用戶可以運行從 Internet 下載的受信任腳本。你現(xiàn)在可以繼續(xù)下載設置 Go 編程環(huán)境所需的文件。
第二步:安裝包管理器 Chocolatey
所謂包管理器就是一組軟件工具的集合,這些工具使得安裝過程自動化。這包括軟件的初始安裝、升級和配置,以及根據(jù)需要刪除軟件。他們將軟件安裝保存在一個中央位置,并且可以以常用格式維護系統(tǒng)上的所有軟件包。
Chocolatey 是一個為 Windows 構建的命令行包管理器,其工作方式與 Linux 上的 apt-get 類似。Chocolatey 提供開源版本,可幫助你快速安裝應用程序和工具。你可以用它來下載開發(fā)環(huán)境所需的內容。
在安裝腳本之前,請閱讀一下腳本并確認它對你的機器所做的更改是否令你感到滿意。為此,請使用 .NET 腳本框架下載 Chocolatey 腳本并將其顯示在終端窗口中。
首先創(chuàng)建一個名為 $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 中提取數(shù)據(jù)。然后將腳本傳遞給 iex 或 Invoke-Expression cmdlet,后者將執(zhí)行腳本的內容并開始 Chocolatey 包管理器的安裝。
允許 PowerShell 安裝 Chocolatey。等到安裝完成后,你可以使用 choco 命令開始安裝其他工具。
如果你以后需要隨時升級 Chocolatey,請運行以下命令:
choco upgrade chocolatey
安裝包管理器后,你可以安裝 Go 編程環(huán)境所需的其余部分。
第三步:裝文本編輯器 Nano (可選)
在這一步中,你將安裝 _nano_,這是一個使用命令行界面的文本編輯器。你可以使用 nano 直接在 PowerShell 中編寫程序。這不是強制性步驟,因為你也可以使用帶有圖形用戶界面的文本編輯器,例如 Notepad 。本教程推薦使用 nano,因為它將幫助你習慣使用 PowerShell。
使用 Chocolatey 安裝 nano:
choco install -y nano
-y 標志會自動確認你要運行腳本,而不會提示你確認。
安裝 nano 后,你可以使用 nano 命令創(chuàng)建新的文本文件。你將在本教程后面使用它來編寫你的第一個 Go 程序。
第四步:安裝 Go
就像你在上一步中安裝 nano 一樣,你將使用 Chocolatey 安裝 Go:
choco install -y golang
注意: 因為 go 是一個很小的詞,所以使用 golang 作為安裝包的術語, 這也是在互聯(lián)網上搜索 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 后,你可以為開發(fā)項目設置工作區(qū)。
第五步:創(chuàng)建你的 Go 工作區(qū)
現(xiàn)在你已經安裝了 Chocolatey、nano 和 Go,可以接著創(chuàng)建你的編程工作區(qū)。
Go 語言的工作區(qū)在其根目錄下包含兩個目錄:
src: 該目錄包含 Go 的源文件。所謂源文件就是你用 Go 編程語言寫的文件。源文件被 Go 編譯器構建成可執(zhí)行的二進制文件。bin: 該目錄包含了 Go 工具構建和安裝的可執(zhí)行文件。可執(zhí)行文件就是運行在你系統(tǒng)上并執(zhí)行任務的二進制文件。通常是你的源碼或者是其他下載的 Go 源代碼編譯的程序。
src 子目錄可能包含多個版本控制倉庫(例如 Git, Mercurial 和 Bazaar)。當你引入第三方庫的時候,你可以看到類似 github.com, golang.org 或其他目錄,如果你使用的是 github.com 之類的代碼倉庫,你還將把項目和源文件放在該目錄下。我們將在此步驟的后面部分探討這個概念。這允許你在你的項目中規(guī)范導入代碼。規(guī)范導入就是引用完全限定包的導入,例如 github.com/digitalocean/godo 。
下面是典型的工作區(qū)目錄結構:
.
├── 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 工作區(qū)的默認目錄是用戶的 home 目錄,并帶有 go 子目錄,或者是 $HOME/go 目錄。如果你使用的是早于 1.8 的 Go 版本,目前認為最佳做法是為你的工作區(qū)使用 $HOME/go 位置。
使用下面命令導航到 $HOME 目錄:
cd $HOME
接下來,為你的 Go 工作區(qū)創(chuàng)建目錄結構:
mkdir go/bin, go/src
以上命令將確保下面的目錄結構各就各位:
└── $HOME
└── go
├── bin
└── src
在 Go 1.8 之前,需要設置一個名為 $GOPATH 的本地環(huán)境變量。$GOPATH 告訴編譯器在哪里可以找到導入的第三方源代碼,同樣包括任何你寫的本地源代碼。雖然不再明確要求它,但它仍然被認為是一種很好的做法,因為許多第三方工具仍然依賴于設置的這個變量。
由于你使用 Chocolatey 進行安裝,因此應該已經設置了此環(huán)境變量。你可以使用以下命令驗證這一點:
$env:GOPATH
你應該會看到以下輸出,其中 sammy 代替了你的用戶名:
output
C:\Users\sammy\go
當 Go 編譯和安裝工具時,會將他們放在 $GOPATH/bin 目錄。為方便起見,通常將工作區(qū)的 /bin 子目錄添加到 ~/.profile 中的 PATH 中。你可以使用 PowerShell 中的 setx 命令執(zhí)行此操作:
setx PATH "$($env:path);$GOPATH\bin"
這將允許你在系統(tǒng)上的任何位置運行通過 Go 工具編譯或下載的任何程序。
現(xiàn)在你已經創(chuàng)建了工作區(qū)的根目錄并設置了 $GOPATH 環(huán)境變量,你可以根據(jù)以下目錄結構創(chuàng)建你未來的項目。此示例假設你使用 github.com 作為倉庫:
$GOPATH/src/github.com/username/project
例如,如果你正在開發(fā) https://github.com/digitalocean/godo 項目,它將存儲在以下目錄中:
$GOPATH/src/github.com/digitalocean/godo
該項目結構使項目可以通過 go get 工具使用。它也有助于以后的可讀性。你可以通過使用 go get 命令并獲取 godo 庫來驗證這一點:
go get github.com/digitalocean/godo
注意: 如果你沒有安裝 git,Windows 會打開一個對話框詢問你是否要安裝它。單擊 Yes 繼續(xù)并按照安裝說明進行操作。
你可以通過列出目錄來檢查下看看是否成功下載了 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
在這一步中,你創(chuàng)建了一個 Go 工作區(qū)并且配置了必要的環(huán)境變量。下一步你將使用一些代碼來測試下工作區(qū)。
第六步:創(chuàng)建一個簡單的程序
現(xiàn)在你已經設置了工作區(qū),來創(chuàng)建一個 “Hello, World!” 程序吧。這可以檢驗工作區(qū)配置是否正確,并且給你一個更加熟悉 Go 的機會。因為我們創(chuàng)建的是單個 Go 源文件,而不是實際項目,所以我們不需要在工作區(qū)中執(zhí)行此操作。
在你的 home 目錄,打開一個命令行文本編輯器,例如 nano,然后創(chuàng)建一個新文件:
nano hello.go
在 nano 中打開文本文件后,輸入你的程序代碼:
hello.go
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
按 CTRL 和 X 鍵退出 nano。當提示保存文件時,按 Y,然后按 ENTER 退出。
該代碼使用了 fmt 包并且使用 Hello, World! 作為參數(shù)調用了 Println 函數(shù)。這將導致短語 Hello, World! 在程序運行時打印到終端上。
退出 nano 返回 shell 之后,運行程序:
go run hello.go
你剛剛創(chuàng)建的 hello.go 程序應該會在 PowerShell 產生以下輸出:
output
Hello, World!
在此步驟中,你使用了一個簡單小程序來驗證是否正確配置了 Go 工作區(qū)。
總結
恭喜!至此,你已經在 Ubuntu 機器上設置了 Go 編程工作區(qū),可以開始寫項目了!
相關鏈接: Go : https://golang.org/ PowerShell : https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/powershell .NET : https://dotnet.microsoft.com/ Chocolatey : https://chocolatey.org/ Git : https://git-scm.com/
Mercurial : https://www.mercurial-scm.org/
Bazaar : http://bazaar.canonical.com/
往期推薦
Go高級工程師必修課 | 真心建議你來聽聽,別錯過~
想要了解Go更多內容,歡迎掃描下方?? 關注 公眾號,回復關鍵詞 [實戰(zhàn)群] ,就有機會進群和我們進行交流~
記得分享、在看與點贊哦~

瀏覽
58
Windows 系統(tǒng)的用戶們久等了 !!周一我們介紹了《如何在 macOS 上安裝 Go 和設置本地編程環(huán)境的操作》,具體請參考「每周譯Go」Hello , Gophers !《How to Code in Go》第二彈來了。今天我們將介紹《如何在 Windows 10 上安裝 Go 和設置本地編程環(huán)境》,以供不同系統(tǒng)使用者選擇學習。
如何在 Windows 10 上安裝 Go 和設置本地編程環(huán)境
Go 語言簡介
Go 是一門在 Google 備受挫折后而誕生的語言。開發(fā)者不得不頻繁地在兩門語言中選擇,要么選擇一門執(zhí)行效率高但是編譯時間長的語言,要么選擇一種易于編程但在生產中運行效率低下的語言。Go 被設計為同時提供所有這三個功能:快速編譯、易于編程和生產中的高效執(zhí)行。
雖然 Go 是一門通用的編程語言,可用于許多不同類型的編程項目。但它特別適合網絡/分布式系統(tǒng)項目,贏得了“云語言”的美譽。Go 語言專注于通過一組強大的工具來幫助現(xiàn)代程序員完成更多的工作,通過使格式成為語言規(guī)范的一部分來消除對格式的爭論,以及通過編譯為單個二進制文件來簡化部署。Go 易于學習,關鍵字非常少,這使其成為不論是初學者還是經驗豐富的開發(fā)人員的不二之選。
本教程將指導你通過命令行來安裝 Go 和配置 Go 編程環(huán)境。本教程特別針對 Ubuntu 18.04 的安裝過程,但是對于其他 Debian Linux 發(fā)行版也同樣適用。
安裝前提
你需要一臺擁有管理員權限并且能夠連接上網的 Windows 10 的電腦。
第一步:打開并配置 PowerShell
我們將會在終端上完成我們大部分的安裝和設置,這是一種與計算機交互的非圖形化方式。也就是說,你輸入的是文本,然后也是通過文本得到計算機的反饋,而不是點擊按鈕。命令行,也就是我們熟知的 shell 或者 終端 ,可以幫助你修改或自動化很多你每天執(zhí)行在計算機上的任務,這是軟件開發(fā)人員必備的工具。
PowerShell 是微軟提供的一個命令行 shell 界面的程序。通過 cmdlets (發(fā)音為 command-lets )來執(zhí)行管理任務,它們是 .NET 軟件框架可以執(zhí)行操作的專用類。PowerShell 于 2016 年 8 月開源,現(xiàn)在可跨平臺使用,適用于 Windows 和 UNIX 系統(tǒng)(包括 Mac 和 Linux)。
如何找到 Windows PowerShell 呢,你可以右擊屏幕左下角的開始按鈕,彈出菜單后,點擊搜索,然后在搜索欄中輸入 PowerShell 。當你看到選項時,右擊桌面應用程序中的 Windows PowerShell。出于本教程的目的,選擇以管理員身份運行。當系統(tǒng)提示你出現(xiàn)一個對話框,詢問是否允許此應用程序對您的 PC 進行更改? 單擊是。
完成此操作后,你將看到一個基于文本的界面,其中包含如下所示的字符串:

輸入以下命令退出系統(tǒng)文件夾:
cd ~
然后你會進入到主目錄中,比如 PS C:\Users\sammy
要繼續(xù)安裝過程,你必須通過 PowerShell 設置權限。默認情況下以最安全的模式運行,作為管理員你可以設置以下幾個級別的權限:
Restricted 是默認執(zhí)行策略。在這種模式下,你將無法運行腳本,并且 PowerShell 只能作為交互式 shell 工作。 AllSigned 將使你能夠運行由受信任的發(fā)布者簽名的所有腳本和配置文件,這意味著可能讓計算機面臨著運行惡意腳本的風險,這腳本碰巧由受信任發(fā)布者簽名。 RemoteSigned 將允許你運行由受信任的發(fā)布者簽名的從 Internet 下載的腳本和配置文件,如果這些受信任的腳本實際上是惡意的,則再次使你的計算機暴露在漏洞面前。. Unrestricted 將運行從 Internet 下載的所有腳本和配置文件,只要你確認你知曉該文件是從 Internet 下載的。在這種情況下,不需要數(shù)字簽名,因此你可能會讓你計算機面臨運行從 Internet 下載的未簽名和潛在惡意腳本的風險。
在本教程中,你將使用 RemoteSigned 執(zhí)行策略來設置當前用戶的權限。這將允許 PowerShell 接受受信任的腳本,而不會使權限像 Unrestricted 權限那樣廣泛。在 PowerShell 中輸入以下內容:
Set-ExecutionPolicy -Scope CurrentUser
然后 PowerShell 將提示你為你提供一個可執(zhí)行策略。輸入以下內容來使用RemoteSigned 策略:
RemoteSigned一旦你按了回車鍵,系統(tǒng)會要求你確認對執(zhí)行政策的更改。輸入字母 y 以使更改生效。你可以通過詢問機器上的當前權限來確認這是否生效:
Get-ExecutionPolicy -List你應該會收到如下所示的輸出:
Output
Scope ExecutionPolicy
----- ---------------
MachinePolicy Undefined
UserPolicy Undefined
Process Undefined
CurrentUser RemoteSigned
LocalMachine Undefined
這表明當前用戶可以運行從 Internet 下載的受信任腳本。你現(xiàn)在可以繼續(xù)下載設置 Go 編程環(huán)境所需的文件。
第二步:安裝包管理器 Chocolatey
所謂包管理器就是一組軟件工具的集合,這些工具使得安裝過程自動化。這包括軟件的初始安裝、升級和配置,以及根據(jù)需要刪除軟件。他們將軟件安裝保存在一個中央位置,并且可以以常用格式維護系統(tǒng)上的所有軟件包。
Chocolatey 是一個為 Windows 構建的命令行包管理器,其工作方式與 Linux 上的 apt-get 類似。Chocolatey 提供開源版本,可幫助你快速安裝應用程序和工具。你可以用它來下載開發(fā)環(huán)境所需的內容。
在安裝腳本之前,請閱讀一下腳本并確認它對你的機器所做的更改是否令你感到滿意。為此,請使用 .NET 腳本框架下載 Chocolatey 腳本并將其顯示在終端窗口中。
首先創(chuàng)建一個名為 $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 中提取數(shù)據(jù)。然后將腳本傳遞給 iex 或 Invoke-Expression cmdlet,后者將執(zhí)行腳本的內容并開始 Chocolatey 包管理器的安裝。
允許 PowerShell 安裝 Chocolatey。等到安裝完成后,你可以使用 choco 命令開始安裝其他工具。
如果你以后需要隨時升級 Chocolatey,請運行以下命令:
choco upgrade chocolatey
安裝包管理器后,你可以安裝 Go 編程環(huán)境所需的其余部分。
第三步:裝文本編輯器 Nano (可選)
在這一步中,你將安裝 _nano_,這是一個使用命令行界面的文本編輯器。你可以使用 nano 直接在 PowerShell 中編寫程序。這不是強制性步驟,因為你也可以使用帶有圖形用戶界面的文本編輯器,例如 Notepad 。本教程推薦使用 nano,因為它將幫助你習慣使用 PowerShell。
使用 Chocolatey 安裝 nano:
choco install -y nano
-y 標志會自動確認你要運行腳本,而不會提示你確認。
安裝 nano 后,你可以使用 nano 命令創(chuàng)建新的文本文件。你將在本教程后面使用它來編寫你的第一個 Go 程序。
第四步:安裝 Go
就像你在上一步中安裝 nano 一樣,你將使用 Chocolatey 安裝 Go:
choco install -y golang
注意: 因為 go 是一個很小的詞,所以使用 golang 作為安裝包的術語, 這也是在互聯(lián)網上搜索 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 后,你可以為開發(fā)項目設置工作區(qū)。
第五步:創(chuàng)建你的 Go 工作區(qū)
現(xiàn)在你已經安裝了 Chocolatey、nano 和 Go,可以接著創(chuàng)建你的編程工作區(qū)。
Go 語言的工作區(qū)在其根目錄下包含兩個目錄:
src: 該目錄包含 Go 的源文件。所謂源文件就是你用 Go 編程語言寫的文件。源文件被 Go 編譯器構建成可執(zhí)行的二進制文件。bin: 該目錄包含了 Go 工具構建和安裝的可執(zhí)行文件。可執(zhí)行文件就是運行在你系統(tǒng)上并執(zhí)行任務的二進制文件。通常是你的源碼或者是其他下載的 Go 源代碼編譯的程序。
src 子目錄可能包含多個版本控制倉庫(例如 Git, Mercurial 和 Bazaar)。當你引入第三方庫的時候,你可以看到類似 github.com, golang.org 或其他目錄,如果你使用的是 github.com 之類的代碼倉庫,你還將把項目和源文件放在該目錄下。我們將在此步驟的后面部分探討這個概念。這允許你在你的項目中規(guī)范導入代碼。規(guī)范導入就是引用完全限定包的導入,例如 github.com/digitalocean/godo 。
下面是典型的工作區(qū)目錄結構:
.
├── 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 工作區(qū)的默認目錄是用戶的 home 目錄,并帶有 go 子目錄,或者是 $HOME/go 目錄。如果你使用的是早于 1.8 的 Go 版本,目前認為最佳做法是為你的工作區(qū)使用 $HOME/go 位置。
使用下面命令導航到 $HOME 目錄:
cd $HOME
接下來,為你的 Go 工作區(qū)創(chuàng)建目錄結構:
mkdir go/bin, go/src
以上命令將確保下面的目錄結構各就各位:
└── $HOME
└── go
├── bin
└── src在 Go 1.8 之前,需要設置一個名為 $GOPATH 的本地環(huán)境變量。$GOPATH 告訴編譯器在哪里可以找到導入的第三方源代碼,同樣包括任何你寫的本地源代碼。雖然不再明確要求它,但它仍然被認為是一種很好的做法,因為許多第三方工具仍然依賴于設置的這個變量。
由于你使用 Chocolatey 進行安裝,因此應該已經設置了此環(huán)境變量。你可以使用以下命令驗證這一點:
$env:GOPATH
你應該會看到以下輸出,其中 sammy 代替了你的用戶名:
output
C:\Users\sammy\go當 Go 編譯和安裝工具時,會將他們放在 $GOPATH/bin 目錄。為方便起見,通常將工作區(qū)的 /bin 子目錄添加到 ~/.profile 中的 PATH 中。你可以使用 PowerShell 中的 setx 命令執(zhí)行此操作:
setx PATH "$($env:path);$GOPATH\bin"
這將允許你在系統(tǒng)上的任何位置運行通過 Go 工具編譯或下載的任何程序。
現(xiàn)在你已經創(chuàng)建了工作區(qū)的根目錄并設置了 $GOPATH 環(huán)境變量,你可以根據(jù)以下目錄結構創(chuàng)建你未來的項目。此示例假設你使用 github.com 作為倉庫:
$GOPATH/src/github.com/username/project例如,如果你正在開發(fā) https://github.com/digitalocean/godo 項目,它將存儲在以下目錄中:
$GOPATH/src/github.com/digitalocean/godo該項目結構使項目可以通過 go get 工具使用。它也有助于以后的可讀性。你可以通過使用 go get 命令并獲取 godo 庫來驗證這一點:
go get github.com/digitalocean/godo
注意: 如果你沒有安裝 git,Windows 會打開一個對話框詢問你是否要安裝它。單擊 Yes 繼續(xù)并按照安裝說明進行操作。
你可以通過列出目錄來檢查下看看是否成功下載了 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在這一步中,你創(chuàng)建了一個 Go 工作區(qū)并且配置了必要的環(huán)境變量。下一步你將使用一些代碼來測試下工作區(qū)。
第六步:創(chuàng)建一個簡單的程序
現(xiàn)在你已經設置了工作區(qū),來創(chuàng)建一個 “Hello, World!” 程序吧。這可以檢驗工作區(qū)配置是否正確,并且給你一個更加熟悉 Go 的機會。因為我們創(chuàng)建的是單個 Go 源文件,而不是實際項目,所以我們不需要在工作區(qū)中執(zhí)行此操作。
在你的 home 目錄,打開一個命令行文本編輯器,例如 nano,然后創(chuàng)建一個新文件:
nano hello.go
在 nano 中打開文本文件后,輸入你的程序代碼:
hello.go
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
按 CTRL 和 X 鍵退出 nano。當提示保存文件時,按 Y,然后按 ENTER 退出。
該代碼使用了 fmt 包并且使用 Hello, World! 作為參數(shù)調用了 Println 函數(shù)。這將導致短語 Hello, World! 在程序運行時打印到終端上。
退出 nano 返回 shell 之后,運行程序:
go run hello.go
你剛剛創(chuàng)建的 hello.go 程序應該會在 PowerShell 產生以下輸出:
output
Hello, World!在此步驟中,你使用了一個簡單小程序來驗證是否正確配置了 Go 工作區(qū)。
總結
Git : https://git-scm.com/
Mercurial : https://www.mercurial-scm.org/
Bazaar : http://bazaar.canonical.com/
往期推薦
想要了解Go更多內容,歡迎掃描下方?? 關注 公眾號,回復關鍵詞 [實戰(zhàn)群] ,就有機會進群和我們進行交流~
記得分享、在看與點贊哦~




