網站首頁 編程語言 正文
一、包
1.包的種類:系統內置包、自定義包、第三方包。
(1)系統內置包:go語言自帶包,如str.conv、fmt等
(2)自定義包:開發者自己寫的包
(3)第三方包:屬于自定義包的一種,需下載到本地才能使用, 如可以從GitHub上下載的第三方包。
2.包是多個go源文件的集合,一個package下可以有多個go文件,歸屬于同一package
二、包管理工具go mod
1.在go的1.11版本之前如果想自定義包需要把項目放在GOPATH目錄下。在go的1.11版本之后無需手動配置環境變量,使用go mod管理項目,也不需要把項目放在GOPATH下。在go的1.13版本之后就徹底
不需要GOPATH了。
2.實際開發中首先需要在項目目錄下通過go mod init命令來創建一個go.mod文件來管理項目,如在項目project下初始化項目:go mod init project。一個項目中必須要有main包和main方法。
3.一個包里可以定義方法或變量,如果方法名或變量名大寫,則此方法或變量可以被其他包引用并使用,表示公有,小寫為私有。
三、init函數
1.如果在go文件里定義了init函數,則init函數會在程序運行時自動被調用執行,且為最先執行。
2.如果一個包引用了另一個包,另一個包又引用了另一個包,被最后導入的包會最先初始化并執行init函數。
四、使用第三方包
1.首先在github上找到第三方包,下載到本地即可進行引用。
2.安裝方法:
(1)go get 包名稱(全局,受網絡影響)
(2)go mod download(全局,下載當前包的依賴)
(3)go mod vendor(將依賴復制到當前項目的vendor下,本項目)
補充:下面看下go mod包管理工具
修改go的.env文件中的配置
GO111MODULE=on
GOBIN=/Users/youdi/go/bin
GOPROXY=https://goproxy.cn,direct
GOSUMDB=off
進入goPath路徑下的src目錄
執行命令
go mod init 項目名
會生成go.mod文件
下載需要的包,移除多余的包
go mod tidy
go mod 命令介紹
命令 | 說明 |
---|---|
download | download modules to local cache(下載依賴包) |
edit | edit go.mod from tools or scripts(編輯go.mod) |
graph | print module requirement graph (打印模塊依賴圖) |
verify | initialize new module in current directory(在當前目錄初始化mod) |
tidy | add missing and remove unused modules(拉取缺少的模塊,移除不用的模塊) |
vendor | make vendored copy of dependencies(將依賴復制到vendor下) |
verify | verify dependencies have expected content (驗證依賴是否正確) |
why | explain why packages or modules are needed(解釋為什么需要依賴) |
原文鏈接:https://www.cnblogs.com/ThXin/p/16332482.html
相關推薦
- 2022-02-01 es ik分詞插件安裝
- 2024-01-16 linux查看外網ip的5種方法
- 2022-03-15 Docker Run Cadvisor failed: inotify_add_watch /sy
- 2022-05-12 Kotlin operator方法的重載
- 2022-09-17 python?df遍歷的N種方式(小結)_python
- 2023-01-12 keepalived?+?nginx?實現高可用方案_nginx
- 2023-03-11 Pandas讀取csv的實現_python
- 2023-01-12 Matlab中關于argmax、argmin函數的使用解讀_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支