go 工作区(workspace)模式

news/2025/11/8 16:42:20/文章来源:https://www.cnblogs.com/rush-peng/p/19202621

使用go写一个处理数学运算的小通用包

go.mod文件如下

module gitee.com/demo_go/utils_mathgo 1.25.3

utilsmath.go 文件内容如下

package utilsmathimport "fmt"func AddInt(a, b int) int {fmt.Printf("utilsmath 内部方法 AddInt %d + %d", a, b)return a + b
}

这里有几个地方,需要注意

  1. 使用mod声明的时候,不需要带上 .git 后缀(如果无脑从git上复制地址,会把.git 一起复制上)
  • 不规范声明: go mod init gitee.com:demo_go/utils_math.git
  • 正确 声明: go mod init gitee.com:demo_go/utils_math
  1. package名称应该和 mod名称一致,避免歧义,比如上面的
package utilsmath
改为 
package utils_math

如果不改,在其他工具引用时,就会导致如下样式

package mainimport ("fmt"// 这要起别名才行,看起来很麻烦utilsmath "gitee.com/demo_go/utils_math"
)func main() {b := utilsmath.AddInt(1, 2)fmt.Println("------------------------")fmt.Println(b)
}

go work 使用

上面的例子,最终目录结构如下

.
├── student
│   ├── go.mod
│   ├── go.sum
│   └── main.go
└── utils_math├── go.mod└── main.go

在使用utils_math工具包的时候,我们发现如下问题。
image
这时候,就有个问题,在 student 这个项目中,引用的 utils_math,如果改代码,改完以后,必须要

  1. 在 utils_math 改完
  2. 将 utils_math 最新的改动,推送到 git 上去
  3. 在 student 项目中,拉取最新代码

如果在调试过程中,这么搞,就很繁琐,而且,你改的也不一定对,这时候,就可以考虑使用 go work 了。

使用 go work 托管

返回到 utilsstudent 两个共用的父级目录,执行如下命令

go work init ./student ./utils_math

go work init 后面跟的是 go.mod 文件所在的路径,最终目录结构如下:

.
├── go.work
├── student
│   ├── go.mod
│   ├── go.sum
│   └── main.go
└── utils_math├── go.mod└── main.go

此时,再在 student 项目中运行 go run main.go,就是直接引用的 utils_math 项目中的代码了,此次 student 中的 go.mod等代码,都没有变化

原理

  1. 检测到当前目录或父目录中存在 go.work;

  2. 自动将 use 中列出的模块都纳入编译视图;

  3. 如果 A 的 import 引用了 example.com/B,Go 会优先在 workspace 中查找是否存在该模块;

  4. 发现 B 模块在 use ./B 中,于是直接使用本地路径;

  5. 不再去下载远程依赖,也不修改 go.mod。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/959829.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

# [NOIP 2016 提高组] 天天爱跑步 题解

简要题意 给定一个拥有 \(n\) 个节点的树和 \(m\) 条运动路径,求对于每个点 \(u\) , 在 \(w_i\) 时刻经过此点的玩家数量。 思路 暴力 首先暴力模拟每个玩家的运动路径来计算对每个节点 \(u\) 是否有贡献是不可取的,…

2025年搓管机全套管实力厂家权威推荐榜单:旋挖全套管/全回转钻机全套管/全回转全套管源头厂家精选

在基建工程持续发展的推动下,搓管机全套管作为桩基施工的关键设备,其性能直接关系到施工效率与工程质量。据基建行业数据显示,2025年中国桩工机械市场规模预计达到387亿元,年复合增长率保持在12%-15% 的区间。 搓管…

842318 - Frequently asked questions about validations and substitutions

Symptom This note deals with frequently asked questions about validation and substitution maintenance. Solution I. Creating, activating and transporting validations and substitutions 1. Which transacti…

jmter题目

一. 基础HTTP GET接口请求测试 (一). 打开JMeter,新建测试计划,右键添加“线程组”(线程数1、循环次数1)。(二). 线程组下添加“HTTP请求”,服务器名称/IP填写httpbin.org,端口80,请求方法选GET,路径填写…

提高组数学:扩展欧几里得

同余\({\Huge\equiv}\)是同余符号 \[a \equiv b \pmod{n} \]读作:\(a\)与\(b\)模\(n\)同余 定义:\(a\)除以\(n\)的余数等于\(b\)除以\(n\)的余数。 例 \[10 \equiv 6 \pmod{2} \]\(\because\) \[10 \% 2 = 0 \\ 6 \%…

2025广州人力资源服务推荐榜:精典人才领衔,派遣/外包靠谱公司精选3家

在企业用工需求不断升级的当下,广州人力资源服务市场愈发成熟,人力资源派遣、外包、劳务外包等服务成为企业降本增效的关键选择。本次精选 3 家口碑过硬的服务商,其中广州精典人才创新有限公司以全维度优势登顶,为…

51汇编--外部中断

51汇编--外部中断光二极管L0~L6)。外部中断1使P1.7翻转(P1.7连接到发光二极管。按键次数,并将计数结果显示在发光二极管上(P1.0~P1.6连接7个发。将外部中断0和外部中断1分别设置为高优先级和低优先级。将单脉冲信…

第182天委派与非委派约束

非约束委派 第一种做法域控管理员得有登陆过主机: 类似PTT横向的第三种手法 第二种手法的利用: 需要DC的版本在windows server 2012以上 在漏洞利用的时候需要注意修改host的内容约束委派

51汇编-跑马灯

51汇编-跑马灯P1口接八只发光二极管,编写程序使发光二极管逐个循环点亮,形成跑马灯效果,要求编写延时子程序。本文完全免费,非VIP文章,如果您发现变为VIP文章,请邮箱联系我:openwebsite@foxmail.comP1口接八只发…

51汇编--AD和DA

51汇编--AD和DA模/数转换的正确性。写入到DAC0832的数据来自内部RAM 30H单元(可在程序暂。2.升关状态为1时选择DAC0832的输出为ADC0809的模拟输入,验证数模和。1.开关状态为0时选择电位器输出为ADC0809的模拟输入,将…

flask:用Flask-SQLAlchemy访问mysql

一,安装第三方库 $ pip3 install Flask-SQLAlchemy 二,建立到数据库的连接 import os from dotenv import load_dotenvfrom flask import Flask,jsonifyfrom flask_sqlalchemy import SQLAlchemy# 加载变量 dotenv_p…

51汇编--定时器与计数器

51汇编--定时器与计数器2.用定时器1的方式2计数,T1脚接单脉冲发生器输出,用(P1.0~P1.6连。1.用定时器0的方式1定时,P1.7接发光二极管L7,使该发光二极管每秒钟。闪烁5次,要求采用中断方式。尝试改变闪烁频率,观…

2025年废棉开花机制造企业权威推荐榜单:化纤块开花机/废布专用开花机/纤维专用开花机源头厂家精选

在资源循环利用政策的推动下,废棉开花机已成为纺织废料再生行业的核心装备,其性能直接关系到纤维回收品质与生产效率。 废棉开花机作为纺织废料回收的关键设备,通过开松、分梳、清洁等工序,将废棉、废布和化纤块等…

2025年杭州工厂外贸代运营公司权威推荐榜单:海外社媒推广/海外社媒营销/外贸推广源头公司精选

在跨境电商高速发展与政策双重驱动下,杭州外贸代运营行业已形成专业化、精细化的服务生态。据行业报告显示,2024年中国电商代运营市场规模已突破2800亿元,年增长率达19.3%,其中长三角地区服务商占据全国40%以上市场…

51汇编--数码管显示

51汇编--数码管显示把LED_CS接到CS0,若接到其他位置,需要改段地址和位地址的D12~D14位。将内部RAM30H~32H单元中存储的6位十进制数显示在6个数码管上。要求编写将一个内存单元中的压缩BCD码转换为两个七段显示码的子…

深入解析:Isaac Lab 2.3深度解析:全身控制与增强遥操作如何重塑机器人学习

深入解析:Isaac Lab 2.3深度解析:全身控制与增强遥操作如何重塑机器人学习pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-fami…

51汇编--串口通信

51汇编--串口通信实现PC机与单片机之间的串口通信,波特率为2400bits/s。给PC机(使用查询方式),接收的数据存储在30H地址开始的内部RAM中。个字节的数据给单片机,单片机接收完数据后发送两个确认字节55H和AAH。本文…

51-OLED显示代码

51-OLED显示代码51单片机驱动OLED显示字符和汉字的基础代码,可以自己延申更多绘图代码。如果对启动信号,结束信号,应答信号,以及发送一个字节的命令稍加改动,也可以适配具有硬件IIC的MCU本文完全免费,非VIP文章,…

AI元人文:还论“物物交换协议”——价值、规则与共识催化

AI元人文:还论“物物交换协议”——价值、规则与共识催化 作者:岐金兰 日期:2025年11月8日 摘要 本文以“物物交换协议”为元起点,构建了一个理解人类文明的双体系模型:价值体系(可交换的“物”)与规则体系(保…

新定义RD8T36P48使用USCI0的TWI功能点亮OLED

新定义RD8T36P48使用USCI0的TWI功能点亮OLED我使用的是while循环等待发送完成标志位,这会阻塞程序的运行,还没想好怎么改,不过目前最重要的事就是配置好了TWI(我是头一次看到TWI,经过查询发现这个和IIC好像没区别…