Go程式使用專案其他package定義的函式或型別的方式如下。
如果要使用其他package的函式或型別,必須匯入(import)該package。匯入的package名稱必須包含module名稱及package路徑。且函式或型別的名稱必須為大寫開頭的exported name才能被存取。
例如專案目錄結構如下:
/
├── go.mod
├── demo.go (main)
├── model/
│ └── employee.go
└── service/
└── service.go
專案的module名稱為abc.com/demo
。
go.mod
module abc.com/demo
go 1.16
employee.go
定義了struct Employee
型別。
employee.go
package model
type Employee struct {
Id int
Name string
Age int
}
service.go
的Youger()
函式有使用到employee.go
的Employee
所以需要匯入package abc.com/demo/model
。
service.go
import "abc.com/demo/model"
func Youger(employee *model.Employee) {
employee.Age--
}
demo.go
同時使用到service.go
及employee.go
的函式與型別,因此兩個package都要匯入。
demo.go
package main
import (
"fmt"
"abc.com/demo/model"
"abc.com/demo/service"
)
func main() {
employee := model.Employee{
Id: 1,
Name: "John",
Age: 20,
}
fmt.Println(employee) // {1 John 20}
service.Youger(&employee)
fmt.Println(employee) // {1 John 19}
}
在VSCode加裝Go extension編輯時可直接輸入package名稱,編輯器會自動提示並幫我們加上需要的import。
沒有留言:
張貼留言