文件結構如下:
第一種:使用package方式。(此方法比較推薦)
hello中.go文件的package為hello,重點:hello中不能有go.mod文件,也就是不能使用go mod init。
module目錄下的go.mod中定義模塊的名字為module_test。
module目錄下的main.go中調用package中的函數時, 使用import "module_test/hello"
第二種方法:
(1)使用module模式。
要在hello目錄下go mod init hello_test,定義hello_test模塊。
go.mod定義如下:
要點:./hello的意思是在go.mod所在目錄下的hello文件夾中尋找hello_test模塊。
包含本地hello_test模塊時,也可以只寫 replace hello_test => ./hello,然后當我們調用go mod tidy時,會自動require需要的模塊,如下:
main.go調用hello文件夾下函數,import如下:
注意第二處的紅色方框,依然使用package(hello)進行調用。
將module當作一個單獨的庫使用即可。
(2)兩個模塊在不同文件夾下。
module_repo和modue(上方module文件夾)同一級。
module_repo文件夾下,有hello(package)目錄,hello目錄下是沒有go.mod文件的,也就是hello目錄不做為module使用。
go.mod中定義模塊為module_ex。如下:
此時,我們想讓模塊module中的main函數調用module_ex的hello(package)中的函數。
文件夾module中go.mod。如下:
文件夾module中main.go。如下: