Golang导入本地包

在学习 Go 方法的过程中,当要了解如何对 Go 封装方法的时候,发现自己对如何导入本地包还不是很了解,因此通过这篇笔记作为记录。

因为使用 Go 版本是 1.19.1,go moudle已经作为 Go 语言默认的依赖管理工具,因此导入本地包也是通过go module完成。其中本地包有两种情况,第一种的是本地包在同一项目中,另一种的是本地包在不同项目中。

首先需要创建依赖管理工具,也就是需要在对应的 go 文件所在的文件夹创建 mod 文件,通常通过go mod init xxx命令完成,这 Go 版本需要大于 1.14。

Go版本大于1.14之后默认是开启`go module`,如果需要关闭`go module`的话,需要`go env -w GO111MODULE=off`,`GO111MODULE`是Go环境中关于`go module`的配置项

如果使用 Goland 作为 IDE 的话,在创建项目的时候已经自动创建相关的 mod 文件,当如果是使用 vscode 的话,则需要自己创建 mod 文件

本地包在同一项目

这种情况在日常开发中可能会比较常见

.
├── geometry
│   └── geometry.go
├── go.mod
└── main.go
对于输出文件树结构,在Mac中只要执行`brew install tree`命令,通过brew安装tree插件,再通过`tree -a`命令就可以在终端输出这一类的文件树结构;Window的话更简单,因为cmd已经内置了tree插件,只要执行`tree`命令即可

对于这种情况,只需要import语句中导入本地包的相对位置即可

package main

import (
	"fmt"
	"project/geometry"
)

本地包不在同一项目

本地包不在同一项目也可以理解为要导入其他项目的 Go 文件,比如我在main.go中导入geometry1/geometry.go文件

.
├── GolangProject
│   ├── go.mod
│   └── main.go
├── geometry1
│   └── geometry.go
└── project
    ├── geometry
    │   └── geometry.go
    ├── go.mod
    └── main.go

首先需要在geometry1项目中通过go mod init geometry1创建依赖工具

module geometryDemo

go 1.19

接着修改project项目的依赖工具

module project

go 1.19

require (
	geometryDemo v0.0.0
)

replace geometryDemo => ../geometry

主要使用到requirereplace指令,require是声明引入的包名以及版本,而且这些包指的是来自Go 依赖仓库 的 依赖包,因此针对于本地包还需要使用replace指令替换包的指向路径

参考资料

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值