go?module化?import?調(diào)用本地模塊?tidy的方法
如何調(diào)用自己寫的本地模塊
- 在項(xiàng)目根目錄$ go mod init 任意名稱(比如abc.com/cde)
- 編寫本地模塊,在其他文件里import該模塊(abc.com/cde/該模塊的路徑)并使用
其他注意點(diǎn):
- 被調(diào)用模塊里包名不要寫main,比如packge abc,那么其他包調(diào)用它時(shí)就叫abc(vscode里可以看到相當(dāng)于import 該包 as abc)
- 被調(diào)用模塊可以不寫main方法
- 被調(diào)用模塊同級(jí)目錄可以有多個(gè)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時(shí)都要寫此文件開頭module demo666里的demo666。這個(gè)名字可以在go mod init 時(shí)任意取,之后可以修改
//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:
引用項(xiàng)目需要的依賴增加到go.mod文件,去掉go.mod文件中項(xiàng)目不需要的依賴。
參考文獻(xiàn)
https://www.jianshu.com/p/7675b8923878
到此這篇關(guān)于go module化 import 調(diào)用本地模塊 tidy的文章就介紹到這了,更多相關(guān)go module本地模塊內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
golang中的select關(guān)鍵字用法總結(jié)
這篇文章主要介紹了golang中的select關(guān)鍵字用法總結(jié),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-06-06
Golang實(shí)現(xiàn)Redis網(wǎng)絡(luò)協(xié)議實(shí)例探究
這篇文章主要為大家介紹了Golang實(shí)現(xiàn)Redis網(wǎng)絡(luò)協(xié)議實(shí)例探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01
go使用SQLX操作MySQL數(shù)據(jù)庫(kù)的教程詳解
sqlx 是 Go 語(yǔ)言中一個(gè)流行的操作數(shù)據(jù)庫(kù)的第三方包,它提供了對(duì) Go 標(biāo)準(zhǔn)庫(kù) database/sql 的擴(kuò)展,簡(jiǎn)化了操作數(shù)據(jù)庫(kù)的步驟,下面我們就來(lái)學(xué)習(xí)一下go如何使用SQLX實(shí)現(xiàn)MySQL數(shù)據(jù)庫(kù)的一些基本操作吧2023-11-11
Go語(yǔ)言web框架Gin響應(yīng)客戶端的方式
Gin是一個(gè)用Go語(yǔ)言編寫的web框架,它是一個(gè)類似于martini但擁有更好性能的API框架, 由于使用了httprouter,速度提高了近40倍,本文給大家介紹了Go語(yǔ)言web框架Gin響應(yīng)客戶端有哪些方式,文中有詳細(xì)的代碼示例供大家參考,需要的朋友可以參考下2024-10-10
重學(xué)Go語(yǔ)言之如何開發(fā)RPC應(yīng)用
這篇文章主要為大家詳細(xì)介紹了在Go語(yǔ)言中如何構(gòu)建RPC應(yīng)用,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-09-09
Golang 字符串轉(zhuǎn)time類型實(shí)現(xiàn)
本文主要介紹了Golang 字符串轉(zhuǎn)time類型實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03

