我是靠谱客的博主 老实长颈鹿,最近开发中收集的这篇文章主要介绍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指令替换包的指向路径

参考资料

  • 了解包 - Training | Microsoft Learn
  • 使用 go module 导入本地包 - 知乎
  • 3 分钟带你掌握 go mod 导入本地包 - 腾讯云开发者社区-腾讯云

最后

以上就是老实长颈鹿为你收集整理的Golang导入本地包的全部内容,希望文章能够帮你解决Golang导入本地包所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部