在学习 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
指令替换包的指向路径
参考资料
原文地址:https://blog.csdn.net/qq_42760314/article/details/128072324
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_51231.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!