go?module化?import?調(diào)用本地模塊?tidy的方法
如何調(diào)用自己寫的本地模塊
- 在項目根目錄$ go mod init 任意名稱(比如abc.com/cde)
- 編寫本地模塊,在其他文件里import該模塊(abc.com/cde/該模塊的路徑)并使用
其他注意點:
- 被調(diào)用模塊里包名不要寫main,比如packge abc,那么其他包調(diào)用它時就叫abc(vscode里可以看到相當(dāng)于import 該包 as abc)
- 被調(diào)用模塊可以不寫main方法
- 被調(diào)用模塊同級目錄可以有多個go文件,但不能有相同的方法名。如b1\b1s.go里有B1方法,b1\b2s.go里就不能有B1方法。
- b1\b1inner\和b1算不同的包。所以b1\b1s.go里有B1方法,b1\b1inner\b2s.go里也可以有
- 必須有g(shù)o.mod文件,import時都要寫此文件開頭module demo666里的demo666。這個名字可以在go mod init 時任意取,之后可以修改
//demo1\b1\b1s.go package b1 import ( "fmt" "demo666/a2" ) func B1() { fmt.Println("B1") a2.A2() }
//demo1\b1\b2s.go package b1 import ( "fmt" ) func B2() { fmt.Println("B2") }
//demo1\b1\b1inner\b2s.go package b1i import ( "fmt" ) func B1() { fmt.Println("b1inner") }
//demo1\util\db.go package dbpackage import ( "database/sql" "fmt" _ "github.com/lib/pq" ) func Select(db *sql.DB) { rows, err := db.Query("SELECT * FROM users where id in (3,44,45,46,47,48,49)") CheckError(err) var es []Product for rows.Next() { var e Product rows.Scan(&e.ID, &e.nAMe, &e.Age) es = append(es, e) } fmt.Printf("%v", es) } *******************************
//demo1\a2\a2service.go package a2 import ( "fmt" ) func A2() { fmt.Println("A2") }
//demo1\go.mod module demo666 go 1.19 require github.com/lib/pq v1.10.7
//demo1\a1.go package main import ( "demo666/b1" "demo666/b1/b1inner" "demo666/util" "fmt" ) func main() { fmt.Println("Starting") b1.B1() b1.B2() db1 := dbpackage.GetDB() defer db1.Close() dbpackage.Select(db1) b1i.B1() }
輸出如下
Starting
B1
A2
B2
[{44 apple 99} {45 apple 99} {46 kitty1 1} {47 kitty2 2} {48 kitty3 0} {49 kitty1 1}]
b1inner
go mode tidy:
引用項目需要的依賴增加到go.mod文件,去掉go.mod文件中項目不需要的依賴。
參考文獻(xiàn)
https://www.jianshu.com/p/7675b8923878
到此這篇關(guān)于go module化 import 調(diào)用本地模塊 tidy的文章就介紹到這了,更多相關(guān)go module本地模塊內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
golang中的select關(guān)鍵字用法總結(jié)
這篇文章主要介紹了golang中的select關(guān)鍵字用法總結(jié),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-06-06Golang實現(xiàn)Redis網(wǎng)絡(luò)協(xié)議實例探究
這篇文章主要為大家介紹了Golang實現(xiàn)Redis網(wǎng)絡(luò)協(xié)議實例探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01go使用SQLX操作MySQL數(shù)據(jù)庫的教程詳解
sqlx 是 Go 語言中一個流行的操作數(shù)據(jù)庫的第三方包,它提供了對 Go 標(biāo)準(zhǔn)庫 database/sql 的擴(kuò)展,簡化了操作數(shù)據(jù)庫的步驟,下面我們就來學(xué)習(xí)一下go如何使用SQLX實現(xiàn)MySQL數(shù)據(jù)庫的一些基本操作吧2023-11-11重學(xué)Go語言之如何開發(fā)RPC應(yīng)用
這篇文章主要為大家詳細(xì)介紹了在Go語言中如何構(gòu)建RPC應(yīng)用,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價值,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-09-09Golang 字符串轉(zhuǎn)time類型實現(xiàn)
本文主要介紹了Golang 字符串轉(zhuǎn)time類型實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03