配置好工作目錄後,就可以編碼開發了,在這之前,我們看下go的通用項目結構,這裏的結構主要是源代碼相應地資源文件存放目錄結構。
1 gopath目錄
gopath目錄就是我們存儲我們所編寫源代碼的目錄。該目錄下往往要有3個子目錄:src,bin,pkg。
src ---- 裏面每一個子目錄,就是一個包。包內是Go的源碼文件
pkg ---- 編譯後生成的,包的目標文件
bin ---- 生成的可執行文件。
2 編寫第一個程序
2.1.在HOME/go的目錄下,(就是GOPATH目錄裏),創建一個目錄叫src,然後再該目錄下創建一個文件夾叫hello,在該目錄下創建一個文件叫helloworld.go,並雙擊打開,輸入以下內容:
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
2.2.執行go程序
執行go程序由幾種方式
方式一:使用go run命令
step1:打開終端:
window下使用快捷鍵win+R,輸入cmd打開命令行提示符
linux下可以使用快捷鍵:ctrl+alt+T
mac下command+空格,輸入termainl
step2:進入helloworld.go所在的目錄
step3:輸入go run helloworld.go命令並觀察運行結果。
方式二:使用go build命令
step1:打開終端:在任意文件路徑下,運行:
go install hello
也可以進入項目(應用包)的路徑,然後運行:
go install
注意,在編譯生成go程序的時,go實際上會去兩個地方找程序包:
GOROOT下的src文件夾下,以及GOPATH下的src文件夾下。
在程序包裏,自動找main包的main函數作爲程序入口,然後進行編譯。
step2:運行go程序
在/home/go/bin/下(如果之前沒有bin目錄則會自動創建),會發現出現了一個hello的可執行文件,用如下命令運行:
./hello
3 第一個程序的解釋說明
-
在同一個包下面的文件屬於同一個工程文件,不用
import
包,可以直接使用 -
在同一個包下面的所有文件的package名,都是一樣的
-
在同一個包下面的文件
package
名都建議設爲是該目錄名,但也可以不是
import "fmt" 告訴 Go 編譯器這個程序需要使用 fmt 包的函數,fmt 包實現了格式化 IO(輸入/輸出)的函數
可以是相對路徑也可以是絕對路徑,推薦使用絕對路徑(起始於工程根目錄)
-
點操作
我們有時候會看到如下的方式導入包import( . "fmt" )
這個點操作的含義就是這個包導入之後在你調用這個包的函數時,你可以省略前綴的包名,也就是前面你調
用的
fmt.Println("hello world")
可以省略的寫成Println("hello world")
-
別名操作
別名操作顧名思義我們可以把包命名成另一個我們用起來容易記憶的名字import( f "fmt" )
別名操作的話調用包函數時前綴變成了我們的前綴,即
f.Println("hello world")
-
_操作
這個操作經常是讓很多人費解的一個操作符,請看下面這個importimport ( "database/sql" _ "github.com/ziutek/mymysql/godrv" )
_操作其實是引入該包,而不直接使用包裏面的函數,而是調用了該包裏面的init函數
main(),是程序運行的入口。