可是,地鼠之王...還是地鼠
今天來分享昨天稍微提到的go mod init
指令,以下幾句有些是ChatGPT
幫我想的、有些是我的文字,看大家能分辨多少...
go mod
是 Go 1.11 版本引入的官方相依關係管理工具。它的主要功能是幫助你追蹤和管理你的專案所需的外部庫,並確保它們的版本是一致的。總之,讓我們直接 Show you Codes...
go mod init {package_name}
package_name 通常是你的檔案路徑,以我把專案放上去github.com
的慣例來說,通常會取 github.com/user/repo
之類的...
然後你會看到執行後有個神奇檔案出現:go.mod
添加相依庫
一旦你看到go.mod
後,你就可以使用 go get 命令來添加相依庫。
例如,要添加一個名為 github.com/gorilla/mux 的相依庫,你可以執行以下命令:
go get github.com/gorilla/mux
這將下載並安裝相依庫,並更新 go.mod 文件以反映相依關係...另外還會看到一個go.sum
的特別檔案...這是因為那是外來package, 開發者可能隨時都會更新,所以要用「go.sum」去處理確保下載的相依庫的完整性和安全性的部分,它還可以幫助確保相依庫的版本不會在未來自動更新,從而確保穩定性。
如果你寫過其他語言,你會發現這個機制很像 php 的composer.json/composer.lock
和 nodejs 的package.json / package.lock
...
PS: 你還可以用go get -u
,他的作用是用於更新所有相依庫到最新版本。
那麼你一定很好奇,go get
到底做了什麼...因為composer install
和npm install
都會生成對應的資料夾,例如vendor
或者node_modules
...go get
之後的套件跑到哪裡去了...
以我環境為macos
來說,他會跑到~/go/pkg/mod
這裡,以便後續程式調用。
好了,你覺得那些是ChatGPT
、哪些是我寫的 哈哈哈