此示例旨在详细演示函数的各种调用。您将学习如何在主包中创建和调用自定义包函数。您还可以使用别名从另一个包调用自定义包的函数。
以下是我们应用程序的目录结构。
├── employee
│ ├── go.mod
│ ├── main.go
│ └── basic
│ └── basic.go
│ └── gross
│ └── gross.go
进入employee目录并运行以下命令以创建名为 employee 的go模块。
go mod init employee
上面的命令将创建一个名为go.mod的文件。
要使用自定义包,我们必须先导入它。导入路径是附加在包的子目录和包名称上的模块名称。在我们的示例中,模块名称为 employee,包 basic 位于 employee 文件夹下的basic文件夹中。此外,包裹gross位于basic文件夹下的gross文件夹中。
因此,行导入"employee/basic"将导入basic包,而"employee/basic/gross"将导入gross包
# employee\main.go
package main
import (
b "employee/basic"
"employee/basic/gross"
"fmt"
)
func main() {
b.Basic = 10000
fmt.Println(gross.GrossSalary())
}
我们将basic包别名为 b。我们调用gross包的GrossSalary函数,并将值分配给basic包的Basic变量。
在basic文件夹中创建一个文件basic.go。basic文件夹中的文件应以行package basic开头,因为它属于basic包。
# employee\basic\basic.go
package basic
var hra int = 5
var tax int = 2
var Basic int
func Calculation() (allowance int, deduction int) {
allowance = (Basic * hra) / 100
deduction = (Basic * tax) / 100
return
}
在 gross 文件夹中创建一个文件gross.go。gross文件夹中的文件应以行package gross开头,因为它属于gross包。
# employee\basic\gross\gross.go
package gross
import (
b "employee/basic"
)
func GrossSalary() int {
a, t := b.Calculation()
return ((b.Basic + a) - t)
}
函数GrossSalary调用函数basic包的Calculation。我们将basic包别名为 b。
employee>go run main.go
如果运行该程序,将获得以下输出。
10300