本教程介紹 Go 中多模塊工作區的基礎知識。使用多模塊工作區,您可以告訴 Go 命令您正在同時在多個模塊中編寫代碼,并輕松地在這些模塊中構建和運行代碼。

創新互聯公司長期為近千家客戶提供的網站建設服務,團隊從業經驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯網生態環境。為廣昌企業提供專業的成都網站設計、網站建設,廣昌網站改版等技術服務。擁有10多年豐富建站經驗和眾多成功案例,為您定制開發。
在本教程中,您將在共享的多模塊工作區中創建兩個模塊,對這些模塊進行更改,并在構建中查看這些更改的結果。
本教程需要 go1.18 或更高版本。使用go.dev/dl中的鏈接確保您已在 Go 1.18 或更高版本中安裝了 Go 。
首先,為您要編寫的代碼創建一個模塊。
1、打開命令提示符并切換到您的主目錄。
在 Linux 或 Mac 上:
在 Windows 上:
2、在命令提示符下,為您的代碼創建一個名為工作區的目錄。
3、初始化模塊
我們的示例將創建一個hello依賴于 golang.org/x/example 模塊的新模塊。
創建你好模塊:
使用 . 添加對 golang.org/x/example 模塊的依賴項go get。
在 hello 目錄下創建 hello.go,內容如下:
現在,運行 hello 程序:
在這一步中,我們將創建一個go.work文件來指定模塊的工作區。
在workspace目錄中,運行:
該go work init命令告訴為包含目錄中模塊的工作空間go創建一個文件 。go.work./hello
該go命令生成一個go.work如下所示的文件:
該go.work文件的語法與go.mod相同。
該go指令告訴 Go 應該使用哪個版本的 Go 來解釋文件。它類似于文件中的go指令go.mod 。
該use指令告訴 Go在進行構建時hello目錄中的模塊應該是主模塊。
所以在模塊的任何子目錄中workspace都會被激活。
2、運行工作區目錄下的程序
在workspace目錄中,運行:
Go 命令包括工作區中的所有模塊作為主模塊。這允許我們在模塊中引用一個包,即使在模塊之外。在模塊或工作區之外運行go run命令會導致錯誤,因為該go命令不知道要使用哪些模塊。
接下來,我們將golang.org/x/example模塊的本地副本添加到工作區。然后,我們將向stringutil包中添加一個新函數,我們可以使用它來代替Reverse.
在這一步中,我們將下載包含該模塊的 Git 存儲庫的副本golang.org/x/example,將其添加到工作區,然后向其中添加一個我們將從 hello 程序中使用的新函數。
1、克隆存儲庫
在工作區目錄中,運行git命令來克隆存儲庫:
2、將模塊添加到工作區
該go work use命令將一個新模塊添加到 go.work 文件中。它現在看起來像這樣:
該模塊現在包括example.com/hello模塊和 `golang.org/x/example 模塊。
這將允許我們使用我們將在模塊副本中編寫的新代碼,而不是使用命令stringutil下載的模塊緩存中的模塊版本。
3、添加新功能。
我們將向golang.org/x/example/stringutil包中添加一個新函數以將字符串大寫。
將新文件夾添加到workspace/example/stringutil包含以下內容的目錄:
4、修改hello程序以使用該功能。
修改workspace/hello/hello.go的內容以包含以下內容:
從工作區目錄,運行
Go 命令在go.work文件指定的hello目錄中查找命令行中指定的example.com/hello模塊 ,同樣使用go.work文件解析導入golang.org/x/example。
go.work可以用來代替添加replace 指令以跨多個模塊工作。
由于這兩個模塊在同一個工作區中,因此很容易在一個模塊中進行更改并在另一個模塊中使用它。
現在,要正確發布這些模塊,我們需要發布golang.org/x/example 模塊,例如在v0.1.0. 這通常通過在模塊的版本控制存儲庫上標記提交來完成。發布完成后,我們可以增加對 golang.org/x/example模塊的要求hello/go.mod:
這樣,該go命令可以正確解析工作區之外的模塊。
前端框架越來越豐富,前后端分離已經是大多數軟件團隊采取的模式了。vue使用的場景也越來越多。
go本來使用template模板來進行前端的表現,現在可以用vue來分擔很大一部分工作了。
通常直接使用go語言寫后端,然后使用靜態模板加載渲染前端,前端獲取后端提供的數據是使用{{ }}符號,2個套在一起的花括號。這個也是vue使用的數據表現方式。
如果go+vue來協同工作的話,需要對vue進行一點設置。比如把{{ }}的方式改為[[ ]]的方式。
首先我們要知道,vue的使用,需要在頁面中加載vue.js或vue.min.js
純靜態網頁使用vue是這樣的(給個html例子)
然后我們實現一個go的簡單web服務和模板頁面
這個go服務器通過端口 1989 展示服務器頁面,提供了一個靜態文件路徑 htmlpage,我們把vue.js和index.html文件都放置在htmlpage路徑里。
go服務器還用模板給前臺頁面提供了一個News結構的數據,數據包括:Title,Content,Author的值。
在index.html頁面中,加載vue.js的時候需要帶上靜態路徑 htmlpage
在 new 一個 vue 變量的時候,必須有一句來設置包裹數據的符號,我們這里設置這個符號為[[ ]]
同時,所有需要由 vue 渲染的數據,都寫成類似這樣的樣子
在 go + vue 方式下的完整模板文件 index.html
此頁面中{{ }}包裹的數據是由go從后端提供的數據( 例如:{{.Title}}),而[[ ]]包裹的數據,是vue渲染的數據。
只是把 Vue里的數據,改為由go后端提供即可。
好吧,作者已經在向月亮示愛了。呵呵 _
運行一下程序,看修改模板后的效果。
Go語言模板文件可以引入js文件或css文件,但是在引入的過程中,需要注意以下幾點:
1. 引入的文件路徑應該是相對路徑,而不是絕對路徑。
2. 在引入js文件時,需要使用{{ url }} 模板函數,用來拼接路徑, 這樣可以更好的兼容不同的路徑。
3. 如果是在統一的文件夾中的js文件,最好使用{{ static }}模板函數,這樣可以更好的節省路徑長度。
4. 在引用js文件時,需要在頁面底部,可以使用{{ template }}模板函數,這樣可以保證js文件在頁面加載完成之前就被加載。
總之,使用Go語言模板文件引入js文件,需要注意路徑的相對性,并且使用模板函數來拼接路徑,這樣可以更好的兼容不同的路徑,從而保證引用js文件的正確性。
本文名稱:go語言一個模板如何使用 go語言一個模板如何使用多個程序
URL分享:http://www.js-pz168.com/article2/dddgeoc.html
成都網站建設公司_創新互聯,為您提供虛擬主機、ChatGPT、響應式網站、網站導航、Google、網站收錄
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯