1. 程式人生 > >《Go語言入門》第一個Go語言程式——HelloWorld

《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                # 命令原始碼
此工作空間包含三個程式碼庫(goauth2streak 和 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”目錄下!

而且目錄與檔名要一致!