概述
在学习 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
主要使用到require
和replace
指令,require
是声明引入的包名以及版本,而且这些包指的是来自Go 依赖仓库 的 依赖包,因此针对于本地包还需要使用replace
指令替换包的指向路径
参考资料
- 了解包 - Training | Microsoft Learn
- 使用 go module 导入本地包 - 知乎
- 3 分钟带你掌握 go mod 导入本地包 - 腾讯云开发者社区-腾讯云
最后
以上就是老实长颈鹿为你收集整理的Golang导入本地包的全部内容,希望文章能够帮你解决Golang导入本地包所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复