go语言中VScode中如何使用go module导入包,一篇带你学会 ~~~

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

如何使用go module导入本地包@TOC


前言

提示:这里可以添加本文要记录的大概内容:

由于近期在学习golang,在小破站学习的时候,视频是很久之前的,所以没有用到go module这个版本管理工具。所以通过去网上搜索后,看到一个写的很清楚的博客文章,所以将其分享给大家~

要完成这个首先要再Gopath路径外的随便一个路径下使用该文档
比如我直接在D盘下建了一个Mygoproject文件夹,在此文件夹下建了一个project1,接着在这个文件夹下建立moudleA文件夹

在这里插入图片描述

一.初始准备

假设我们现在有moduleA和moduleB两个包
其中moduleA包中会导入moduleB包并使用它的New方法。
(注意函数名称大写开头才能被引用)

moduleB/moduleB.go内容如下:

package moduleB

import "fmt"

func New(){
	fmt.Println("moduleB.New")
}

我们现在分两种情况讨论:

(1)在同一个项目下

注意:在一个项目(project)下我们是可以定义多个包(package)的。

目录结构如下:

在这里插入图片描述
接着创建moduleA的mod,在集成终端中打开,并在命令行输入

go mod init moduleA

在这里插入图片描述
在这里插入图片描述
moduleA的go.mod内容如下:

module moduleA

go 1.17

moudleA的main.go内容如下:

package main

import (
	"fmt"
	"moduleA/moduleB"
)

func main() {
	moduleB.New()
	fmt.Println("main")
}

接着就可以在终端直接执行啦~:
在这里插入图片描述

(2)在不同项目下执行

恭喜你完成了第一步,现在来到更加刺激的第二步吧~

  1. 首先将moduleB的代码拉出外面来,我们来实现不同项目下的包的引用
    在这里插入图片描述
    此时的moduleB的包(文件夹)里没有mod文件,所以需要自己mod init 。

  2. 打开终端,在命令行输入go mod init moduleB。
    在这里插入图片描述
    此时moduleB的go.mod应该为:

module moduleA

go 1.17

require "moduleB" v0.0.0
replace "moduleB" => "../moduleB"

  1. moduleB中的moduleB.go文件不动,和上面的一样

因为这两个包不在同一个项目路径下,你想要导入本地包,并且这些包也没有发布到远程的github或其他代码仓库地址。这个时候我们就需要在go.mod文件中使用replace指令。

在调用方也就是moduleA/go.mod中按如下方式指定使用相对路径来寻找moduleB这个包。

  1. 此时moduleA的go.mod文件应该为:
module moduleA

go 1.17

require "moduleB" v0.0.0
replace "moduleB" => "../moduleB"
  1. moduleA的main.go文件应该为:
package main

import (
	"fmt"
	"moduleB"
)

func main() {
	moduleB.New()
	fmt.Println("main")
}

接着大功告成
在这里插入图片描述

  • 3
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HUAPRO99

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值