Go语言教程之边写边学:导入导出:如何导入包并声明包的别名

Go还具有为包名称别名的功能。这个例子旨在演示在我们的Go程序中使用别名包名称的重要性。

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

├── vehicle
│   ├── go.mod
│   ├── main.go
│   └── car
│       └── car.go

进入车辆目录并运行以下命令以创建名为 Vehicle 的go模块。

go mod init vehicle

上面的命令将创建一个名为go.mod的文件。

# vehicle\main.go

package main

import (
	car1 "vehicle/car"
	car2 "vehicle/car"

	"fmt"
)

func main() {
	c1 := new(car1.Car)
	c1.Single(10)
	fmt.Println(c1.Price)

	c2 := new(car2.Car)
	c2.Double(10)
	fmt.Println(c2.Price)
}

我们将car包别名为car1和car2。在main() 函数中,我们现在可以使用上面的别名创建变量c1和c2。我们使用c1调用Car结构体的Single() 和Double() 方法,c1.Single() 和c2.Double()。

car文件夹中创建一个文件car.go。car文件夹中的文件应以行package car开头,因为它属于car包。

# vehicle\car\car.go

package car

type Car struct {
	Price int
}

func (obj *Car) Single(price int) int {
	obj.Price = price
	return obj.Price
}

func (obj *Car) Double(price int) int {
	obj.Price = price * 2
	return obj.Price
}

vehicle>go run main.go

如果运行该程序,将获得以下输出。

10
20