網頁

2021/7/9

Golang 使用其他package的函式或型別 use function or type from another package

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.goYouger()函式有使用到employee.goEmployee所以需要匯入package abc.com/demo/model

service.go

import "abc.com/demo/model"

func Youger(employee *model.Employee) {
    employee.Age--
}

demo.go同時使用到service.goemployee.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。


沒有留言:

張貼留言