此示例旨在详细演示函数的各种调用。您将学习如何在主包中创建和调用自定义包函数。您还可以使用别名从另一个包调用自定义包的函数。

以下是我们应用程序的目录结构。

├── 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