本文介绍: 简单了解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指令替换包的指向路径

参考资料

原文地址:https://blog.csdn.net/qq_42760314/article/details/128072324

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_51231.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注