Go | 講解GOROOT、GOPATH、GOBIN

前言Go(又稱 Golang)是 Google 開發的一種靜態強類型、編譯型、并發型 , 并具有垃圾回收功能的編程語言 。Go 被譽為是未來的服務器端編程語言 。
Go是一門全新的靜態類型開發語言,具有自動垃圾回收,豐富的內置類型,函數多返回值,錯誤處理,匿名函數,并發編程,反射等特性 。
特色:

  • 簡潔、快速、安全
  • 并行、有趣、開源
  • 內存管理、數組安全、編譯迅速
GOROOT其實就是golang 的安裝路徑
【Go | 講解GOROOT、GOPATH、GOBIN】當你安裝好golang之后其實這個就已經有了
GOPATHgo命令依賴一個重要的環境變量:GOPATH
GOPATH允許多個目錄,當有多個目錄時 , 請注意分隔符,多個目錄的時候Windows是分號;
當有多個GOPATH時默認將go get獲取的包存放在第一個目錄下
GOBINgo install編譯存放路徑 。不允許設置多個路徑 。可以為空 。為空時則遵循“約定優于配置”原則,可執行文件放在各自GOPATH目錄的bin文件夾中(前提是:package main的main函數文件不能直接放到GOPATHsrc下面 。
GOPATH目錄約定有三個子目錄
  1. src:存放源代碼(比如:.go .c .h .s等)按照golang默認約定,go rungo install等命令的當前工作路徑(即在此路徑下執行上述命令) 。
  2. pkg:編譯時生成的中間文件(比如:.a)golang編譯包時
  3. bin:編譯后生成的可執行文件(為了方便,可以把此目錄加入到 $PATH 變量中,如果有多個gopath,那么使用${GOPATH///bin:}/bin添加所有的bin目錄)
目錄結構規劃GOPATH下的src目錄就是接下來開發程序的主要目錄,所有的源碼都是放在這個目錄下面,那么一般我們的做法就是一個目錄一個項目,
例如:
$GOPATH/src/myproject 表示myproject這個應用包或者可執行應用 , 這個根據package是main還是其他來決定,main的話就是可執行應用,其他的話就是應用包,這個會在后續詳細介紹package 。
go get 和go installgo get會做兩件事:
  1. 從遠程下載需要用到的包
  2. 執行go install
go install 會生成可執行文件直接放到bin目錄下,當然這是有前提的
你編譯的是可執行文件 , 如果是一個普通的包,會被編譯生成到pkg目錄下該文件是.a結尾
go 整體開發目錄不使用 go mod 的方式,項目全在 $GOPATH/src
go_project// go_project為GOPATH目錄-- bin-- myApp1// 編譯生成-- myApp2// 編譯生成-- myApp3// 編譯生成-- pkg-- src-- myApp1// project1-- models-- controllers-- others-- main.go-- myApp2// project2-- models-- controllers-- others-- main.go-- myApp3// project3-- models-- controllers-- others-- main.go我是 甜點cc
熱愛前端 , 也喜歡專研各種跟本職工作關系不大的技術,技術、產品興趣廣泛且濃厚,等待著一個創業機會 。本號主要致力于分享個人經驗總結,希望可以給一小部分人一些微小幫助 。
希望能和大家一起努力營造一個良好的學習氛圍 , 為了個人和家庭、為了我國的互聯網物聯網技術、數字化轉型、數字經濟發展做一點點貢獻 。數風流人物還看中國、看今朝、看你我 。

    推薦閱讀