《Go語言入門》第一個Go語言程式——HelloWorld
概述
上一篇講了 如何在Windows下安裝Go語言程式設計環境,接下來講一下入門必修課:第一個Go語言程式——HelloWorld。
其實Go語言入門是很簡單的,上一篇已經成功在Notepad++中執行HelloWorld,只是在命令列中編譯運行了出現了一點小曲折,這裡記錄說明一下。
編寫HelloWorld
你可以使用任一文字編輯器來編寫Go程式碼,我比較喜歡使用Notepad++,不過它也只能是通過外掛提供程式碼著色,沒有程式碼提示功能。
package main
import "fmt"
func main() {
fmt.Printf("Hello, world.\n")
}
將以下程式碼儲存到“C:\Go\src\hello.go”。編譯執行
開啟命令列,執行:go install hello,如下圖:
提示找不到“hello”這個包,$GOPATH 未設定;
E文不好,開始以為$GOPATH 未設定這個問題,設定GOPATH環境變數
然後將hello.go複製到:C:\Go\work\src
執行:go install hello,居然還是找不到!
這是什麼原因呢,後來發現是學的太著急了,忽略了下一節中的一句話“每個目錄都對應一個包”。
找到答案了,在“C:\Go\src”目錄下新建“hello”資料夾,把hello.go移動到這個資料夾下面,再執行:go install hello
編譯成功了,然後執行:hello,看到久違的 Hello world了,如下圖:
程式碼的組織
工作空間
go
工具為公共程式碼倉庫中維護的開原始碼而設計。 無論你會不會公佈程式碼,該模型設定工作環境的方法都是相同的。
Go程式碼必須放在工作空間內。它其實就是一個目錄,其中包含三個子目錄:
src
目錄包含Go的原始檔,它們被組織成包(每個目錄都對應一個包),pkg
目錄包含包物件,bin
目錄包含可執行命令。
go
工具用於構建原始碼包,並將其生成的二進位制檔案安裝到 pkg
和 bin
目錄中。
src
子目錄通常包會含多種版本控制的程式碼倉庫(例如Git或Mercurial), 以此來跟蹤一個或多個原始碼包的開發。
以下例子展現了實踐中工作空間的概念:
此工作空間包含三個程式碼庫(bin/ streak # 可執行命令 todo # 可執行命令 pkg/ linux_amd64/ code.google.com/p/goauth2/ oauth.a # 包物件 github.com/nf/todo/ task.a # 包物件 src/ code.google.com/p/goauth2/ .hg/ # mercurial 程式碼庫元資料 oauth/ oauth.go # 包原始碼 oauth_test.go # 測試原始碼 github.com/nf/ streak/ .git/ # git 程式碼庫元資料 oauth.go # 命令原始碼 streak.go # 命令原始碼 todo/ .git/ # git 程式碼庫元資料 task/ task.go # 包原始碼 todo.go # 命令原始碼
goauth2
、streak
和 todo
),兩個命令(streak
和 todo
) 以及兩個庫(oauth
和 task
)。小結
雖然Go語言入門比較簡單,但我在看文件時不夠細心,導致這個小插曲,回頭去細讀才發現問題所在。
參考
2017-01-09更新
注意“go run”和“go install”以及“go build”命令的區別!“go run”命令在“.go”檔案所在的目錄執行就可以,
但要執行“go install”以及“go build”命令“.go”檔案必須在“$GOROOT”或“$GOPATH”目錄下!
而且目錄與檔名要一致!