工作目錄
先來說說Golang的工作目錄,安裝好Golang后,需要做的一件事情就是設(shè)置工作目錄匣屡,所有的項(xiàng)目、工具拇涤、第三方包會(huì)存放到工作目錄中捣作。默認(rèn)情況下工作目錄是用戶目錄的go
文件夾。我們可以利用環(huán)境變量GOPATH
來更改Golang工作目錄的位置鹅士。
工作目錄的結(jié)構(gòu)是如下這樣的券躁。bin
文件夾存放項(xiàng)目會(huì)使用到的各種工具;pkc
存放著項(xiàng)目所需的各種包所需的庫文件如绸;src
存放著項(xiàng)目的源代碼嘱朽。如果使用了第三方庫,那么第三方庫也會(huì)存放到工作目錄中怔接。
bin/
pkg/
src/
Go命令
下面來介紹一下Go命令搪泳,它將是我們使用的主要命令。如果需要查看幫助扼脐,可以直接輸入go
岸军,終端會(huì)列出所有命令和簡短的提示。我簡單地翻譯了一下幫助信息瓦侮。
PS C:\Users\asddf> go
Go is a tool for managing Go source code.
Usage:
go command [arguments]
The commands are:
build 編譯包和依賴
clean 移除對(duì)象文件
doc 顯示寶或符號(hào)的文檔信息
env 打印go環(huán)境信息
bug 提交bug信息
fix 在包上運(yùn)行g(shù)o tool fix
fmt 在包源代碼上運(yùn)行格式化工具
generate 處理源代碼并生成go文件
get 下載和安裝包和依賴
install 編譯并安裝包和依賴
list 列出包
run 編譯和運(yùn)行g(shù)o程序
test 測(cè)試包
tool 運(yùn)行指定的go工具
version 打印go版本
vet 在包上運(yùn)行g(shù)o工具審查
運(yùn)行項(xiàng)目
單個(gè)文件
如果只需要運(yùn)行單個(gè)文件艰赞,可以簡單的使用go run
命令。比方說肚吏,下面的代碼文件是hello_world.go
方妖,那么只需要簡單運(yùn)行go run hello_world.go
即可。這里提一下罚攀,可以運(yùn)行的文件的包必須是main
党觅,而且有一個(gè)main
函數(shù)雌澄。
package main
import (
"fmt"
)
func main() {
fmt.Println("Hello World")
}
復(fù)雜項(xiàng)目
如果我們正在編寫一個(gè)比較復(fù)雜的項(xiàng)目,這個(gè)項(xiàng)目有很多個(gè)包杯瞻,那么就不能隨意放置項(xiàng)目了镐牺。為了讓項(xiàng)目中的包可以被訪問,項(xiàng)目必須放置在Go的工作目錄中魁莉,更具體說就是工作目錄的src
中睬涧。
舉個(gè)例子,我的項(xiàng)目可以放置到go_workspace\src\yitian\golang-study\golang-programming
旗唁。這里為了區(qū)分不同的第三方包畦浓,需要不同的目錄層次,例如大部分Github上的第三方庫逆皮,目錄層次都是github.com/XXX
這樣的宅粥。
包
包這個(gè)概念我放到最后來說参袱,因?yàn)槲也恢涝趺凑f电谣。不過如果學(xué)過Java的話,應(yīng)該很容易理解包這個(gè)概念抹蚀,反正都是用來給代碼分類的剿牺。需要注意一點(diǎn),Java的包用來組織代碼环壤,所以Java的包名必須是唯一的晒来,這通過包前面的一長串限定名abc.xyz.XXX
來辦到。
和Java不同的是郑现,Golang中的包可以重名湃崩,所以為了區(qū)分不同的包,需要在引用的時(shí)候添加路徑接箫。就拿剛才舉的項(xiàng)目例子攒读,假如go_workspace\src\yitian\golang-study\golang-programming
下有一個(gè)hello
包,那么在其他項(xiàng)目中要引用這個(gè)包就需要使用名稱yitian/golang-study/golang-programming/hello
辛友。