Go module使用邏輯
在project當中依專案大小的不同可能需要將工作分成多個module。跟C以及C++不同,你無法使用相對路徑去做import,你必須import的是package,而package 的dir由go.mod決定。
流程大綱
- 假設我現在有一個專案叫做goMd,創建goMd資料夾之後cd進去
- 在goMod資料夾下創建main.go
- 在專案底下輸入以下指令,進行init後創建go.mod
- 假設有兩個module 叫做hello以及note,且分別為不同的package hello以及note
- 在main中import,以目前的路徑(goMd) import裡面的package
- 執行 main.go
細部講解
最終的結構會如下
- 創建專案資料夾goMd
- 創建main.go
- 終端機進入goMd資料夾並且在輸入init 指令。將之後import位置調整至goMd
go init指令
go mod init goMod
go.Mod內容
module goMod
go 1.22.1
4.
創建你想要import的module。並且設定pakage name用於之後import。這邊創建兩個pakage分別是hello跟note。
先分別創建hello跟note 資料夾在goMd之下
並且在hello 資料夾下創建hello.go,並且這邊先示範加入SayHello() function。package hello。(記住func name開頭必須要大寫才會是全域,之後在main.go 才能夠使用)
//hello.go
package hello
import "fmt"
func SayHello() {
fmt.Println("Hello, world!")
}
note 資料夾下創建note.go,並且這邊先示範加入Sayhello2() function。package note。(記住func name開頭必須要大寫才會是全域,之後在main.go 才能夠使用)
//note.go
package note
import "fmt"
func Sayhello2() {
fmt.Println("hello test")
}
創建完之後的結構如下
5.
在main中import,記住import根目錄位置會跟go.mod內的位置相同,且import為import pakge的名字。import後直接指定pakage呼叫他裡面的function後可以直接使用
//main.go
package main
import (
"fmt"
"goMod/hello"
"goMod/note"
)
func main() {
hello.SayHello()
note.Sayhello2()
fmt.Println("Main print")
}
6.
run main.go
Top comments (0)