go work 不同包下mod + work实现.go文件的互相调用

一、文件架构

.
├── go.mod
├── go.work
├── main
│   └── main.go
└── util├── go.mod└── util.go

其中go.mod

module testgo 1.21.0

其中go.work

go 1.21.0use (../util
)

main/main.go

  1 package main                                                                                    2                                                                                                 3 import (                                                                                        4     "fmt"                                                                                       5     "uuu"                                                                                       6 )                                                                                               7                                                                                                 8                                                                                                 9 func main() {                                                                                   10     a := utils.Add(1, 3)                                                                        11     fmt.Println(a)                                                                              12 }                                                                                                     

util/go.mod

  1 module uuu                                                                                      2                                                                                                 3 go 1.21.0 

util/util.go

  1 // util.go                                                                                      2 package utils                                                                                   3                                                                                                 4 import "fmt"                                                                                    5                                                                                                 6 func Add(a int, b int) int {                                                                    7  return a + b                                                                                   8 }                                                                                               9                                                                                                 10 func init(){                                                                                    11     fmt.Println("hahahah")                                                                      12 }  

执行后:

┌─[zhaoky@zhaoky][~/Desktop/kaiyue/module]
└──╼ $go run ./main
hahahah
4

需要注意的是,在go.work中添加了子模块的路径,否则在main.go 中会报错如下
在这里插入图片描述

┌─[zhaoky@zhaoky][~/Desktop/kaiyue/module]
└──╼ $go run ./main
main/main.go:5:2: package uuu is not in std (/usr/local/go/src/uuu)

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

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

相关文章

QT day5

服务器: #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);//给服务器指针实例化对象server new QTcpServer(this); }Widget::~Widget() {delete ui…

无涯教程-JavaScript - BIN2DEC函数

描述 BIN2DEC函数将二进制数字转换为十进制。 语法 BIN2DEC (number)争论 Argument描述Required/Optionalnumber 您要转换的二进制数。 Number cannot contain more than 10 characters (10 bits). 数字的最高有效位是符号位。其余的9位是幅度位。 负数使用二进制补码表示。…

切片机制和MR工作机制

InputFormat基类 TextInputFormat:TextInputFormat是默认的FileInputFormat实现类。按行读取每条记录。键是存储该行在整个文件中的起始字节偏移量, LongWritable类型。 CombineTextInputFormat:CombineTextInputFormat用于小文件过多的场景…

Calico IP In IP模拟组网

Calico IP In IP模拟组网 网络架构 模拟组网 先在k8s-master-1节点执行如下命令: # 创建veth-pair设备对ip link add veth1 type veth peer name eth0# 创建ns1网络命名空间ip netns add ns1# 将eth0网卡插入ns1网络命名空间ip link set eth0 netns ns1# 为ns1网…

润和软件HopeStage与上海瑞美云LIS系统管理软件完成产品兼容性互认证

近日,江苏润和软件股份有限公司(以下简称“润和软件”)HopeStage 操作系统与上海瑞美电脑科技有限公司(以下简称“上海瑞美”)瑞美云LIS系统管理软件完成产品兼容性测试。 测试结果表明,企业级通用操作系统…

为什么零基础选择语言首选python

在众多编程语言中,似乎已经没有什么能够阻挡Python的步伐。本月Python又是第一名,市场份额达到了13.42%,在2023年,Python已经连续7个月蝉联榜首,遥遥领先于其他对手。 每个月榜单发布后,都有小伙伴会好奇&…

基于docker环境的tomcat开启远程调试

背景: Tomcat部署在docker环境中,使用rancher来进行管理,需要对其进行远程调试。 操作步骤: 1.将容器中的catalina.sh映射出来,便于对其修改,添加远程调试相关参数。 注意:/data/produce2201…

kafka 命令脚本说明以及在java中使用

一、命令行使用 1.1、topic 命令 1、关于topic,这里用window 来示例 bin\windows\kafka-topics.bat2、创建 first topic,五个分区,1个副本 bin\windows\kafka-topics.bat --bootstrap-server localhost:9092 --create --partitions 5 --replication-factor 1 -…

Redis从基础到进阶篇(三)----架构原理与集群演变

目录 一、缓存淘汰策略 1.1 LRU原理 1.2 案例分析 1.3 Redis缓存淘汰策略 1.3.1 设置最⼤缓存 1.3.2 淘汰策略 二、Redis事务 2.1 Redis事务典型应⽤—Redis乐观锁 2.2 Redis事务介绍 2.3 事务命令 2.3.1 MULTI 2.3.2 EXEC 2.3.3 DISCARD 2.3.4 WATCH 2.3.5 UNW…

实时操作系统Freertos开坑学习笔记:(八):信号量、事件标志组、任务通知机制

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、信号量的简介1.信号量与队列的区别? 二、二值信号量及其实例1.什么是二值信号量2.二值信号量相关API函数3.二值信号量实例 三、计数型信号量四、…

vscode宏键绑定

开发语言php 实现输入[ 得到 [];的效果 [win]ctrlp,[mac]superp 输入>keyboard 选择 在json文件里增加(目前有缺陷,sublime的设置是比较完美的.或者phpstorm默认不需要配置): {"key": "[","command": "editor.action.insertSnippet&…