好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > 使用go module導入本地包的方法教程詳解

使用go module導入本地包的方法教程詳解

熱門標簽:廣東語音外呼系統供應商 濮陽自動外呼系統代理 賺地圖標注的錢犯法嗎 長沙ai機器人電銷 澳門防封電銷卡 智能電銷機器人營銷 福州鐵通自動外呼系統 烏魯木齊人工電銷機器人系統 地圖標注測試

go module 是Go1.11版本之后官方推出的版本管理工具,并且從 Go1.13 版本開始, go module 將是Go語言默認的依賴管理工具。到今天 Go1.14 版本推出之后 Go modules 功能已經被正式推薦在生產環境下使用了。

這幾天已經有很多教程講解如何使用 go module ,以及如何使用 go module 導入gitlab私有倉庫,我這里就不再啰嗦了。但是最近我發現很多小伙伴在群里問如何使用 go module 導入本地包,作為初學者大家剛開始接觸package的時候肯定都是先在本地創建一個包,然后本地調用一下,然后就被卡住了。。。

這里就詳細介紹下如何使用 go module 導入本地包。

前提

假設我們現在有 moduledemo 和 mypackage 兩個包,其中 moduledemo 包中會導入 mypackage 包并使用它的 New 方法。

mypackage/mypackage.go 內容如下:

package mypackage
import "fmt"
func New(){
 fmt.Println("mypackage.New")
}

我們現在分兩種情況討論:

在同一個項目下

注意:在一個項目(project)下我們是可以定義多個包(package)的。

目錄結構

現在的情況是,我們在 moduledemo/main.go 中調用了 mypackage 這個包。

moduledemo
├── go.mod
├── main.go
└── mypackage
  └── mypackage.go

導入包

這個時候,我們需要在 moduledemo/go.mod 中按如下定義:

module moduledemo

go 1.14

然后在 moduledemo/main.go 中按如下方式導入 mypackage

package main
import (
 "fmt"
 "moduledemo/mypackage" // 導入同一項目下的mypackage包
)
func main() {
 mypackage.New()
 fmt.Println("main")
}

舉個例子

舉一反三,假設我們現在有文件目錄結構如下:

└── bubble
    ├── dao
    │   └── mysql.go
    ├── go.mod
    └── main.go

其中 bubble/go.mod 內容如下:

module github.com/q1mi/bubble

go 1.14

bubble/dao/mysql.go 內容如下:

package dao
import "fmt"
func New(){
 fmt.Println("mypackage.New")
}

bubble/main.go 內容如下:

package main

import (
 "fmt"
 "github.com/q1mi/bubble/dao"
)
func main() {
 dao.New()
 fmt.Println("main")
}

不在同一個項目下

目錄結構

├── moduledemo
│   ├── go.mod
│   └── main.go
└── mypackage
    ├── go.mod
    └── mypackage.go

導入包

這個時候, mypackage 也需要進行module初始化,即擁有一個屬于自己的 go.mod 文件,內容如下:

module mypackage

go 1.14

然后我們在 moduledemo/main.go 中按如下方式導入:

import (
 "fmt"
 "mypackage"
)
func main() {
 mypackage.New()
 fmt.Println("main")
}

因為這兩個包不在同一個項目路徑下,你想要導入本地包,并且這些包也沒有發布到遠程的github或其他代碼倉庫地址。這個時候我們就需要在 go.mod 文件中使用 replace 指令。

在調用方也就是 packagedemo/go.mod 中按如下方式指定使用相對路徑來尋找 mypackage 這個包。

module moduledemo
go 1.14
require "mypackage" v0.0.0
replace "mypackage" => "../mypackage"

舉個例子

最后我們再舉個例子鞏固下上面的內容。

我們現在有文件目錄結構如下:

├── p1
│   ├── go.mod
│   └── main.go
└── p2
    ├── go.mod
    └── p2.go

p1/main.go 中想要導入 p2.go 中定義的函數。

p2/go.mod 內容如下:

module liwenzhou.com/q1mi/p2

go 1.14

p1/main.go 中按如下方式導入

import (
 "fmt"
 "liwenzhou.com/q1mi/p2"
)
func main() {
 p2.New()
 fmt.Println("main")
}

因為我并沒有把 liwenzhou.com/q1mi/p2 這個包上傳到 liwenzhou.com 這個網站,我們只是想導入本地的包,這個時候就需要用到 replace 這個指令了。

p1/go.mod 內容如下:

module github.com/q1mi/p1
go 1.14
require "liwenzhou.com/q1mi/p2" v0.0.0
replace "liwenzhou.com/q1mi/p2" => "../p2"

此時,我們就可以正常編譯 p1 這個項目了。

說再多也沒用,自己動手試試吧。

總結

到此這篇關于使用go module導入本地包的方法教程詳解的文章就介紹到這了,更多相關go module 導入本地包內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • 詳解Go module的介紹及使用
  • go module使用本地包的方法示例
  • Django重裝mysql后啟動報錯:No module named ‘MySQLdb’的解決方法
  • 使用Go module和GoLand初始化一個Go項目的方法

標簽:貴陽 廣西 德州 西雙版納 太原 慶陽 調研邀請 阿克蘇

巨人網絡通訊聲明:本文標題《使用go module導入本地包的方法教程詳解》,本文關鍵詞  使用,module,導入,本地,包,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《使用go module導入本地包的方法教程詳解》相關的同類信息!
  • 本頁收集關于使用go module導入本地包的方法教程詳解的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 欧美一级婬片免费视频1| bgmbgmbgm中国老头与老太| 成人免费观看A片www野花视频| 一级黑寡妇毛片免费视频| 好痛嗯啊轻点第一次| 欧美黑粗大硬巴XXOO| 国产人獸交又粗又大免费软件| 国产91香蕉成人app软件| 持续侵犯高傲女教师| 甘婷婷全部三级裸体电影| 四川少妇bbw搡bbbb搡bbbb| 美女脱了内衣让我吃奶| 一级欧美片magnet| 国产欧美一区二区精品性色超碰| 久久精品亚洲AV无码一区二区 | 无人在线高清影视| 日本一级特黄大片吃奶| 啊啊啊啊啊啊啊操| 扒开双腿猛进湿润18p| sm视频在线看| 特黄特色大片BBBB| 99pao在线视频精品免费| 成人小视频在线播放| 韩国电影女大学生| 粗大挺进紧致抽搐喷潮h男男视频| 亚洲欧美另类小说| 久久tv免费国产高清| 用羽毛挠老师尿口| 无码人妻一区二区三区四区免费看| 深夜福利1000| 色姑娘综合网| 啦啦啦免费高清在线视频3| 蜜桃AV精品一区二区三区| 国产精品一线二线三线精华液的 | 两男一女一床一添一摸| xx性视频| 男插女动态视频| nylonfeet丝袜女同系列视频| 女攻男受调教爽哭n四爱| 欧美一区二区三区在线| 性影片在线观看|