返回顶部
首页 > 资讯 > 后端开发 > GO >如何在 golang 的 go.mod 中正确使用递归替换?
  • 637
分享到

如何在 golang 的 go.mod 中正确使用递归替换?

overflow 2024-02-09 05:02:12 637人浏览 薄情痞子
摘要

在使用golang的Go.mod时,正确使用递归替换是一个重要的问题。PHP小编鱼仔为您提供了一些解决方案。递归替换是指在go.mod文件中将某个模块替换为本地目录的方式,以便在开发过

在使用golangGo.mod时,正确使用递归替换是一个重要的问题。PHP小编鱼仔为您提供了一些解决方案。递归替换是指在go.mod文件中将某个模块替换为本地目录的方式,以便在开发过程中进行调试和修改。但是,如果替换的模块依赖其他模块,可能会导致一些问题。通过正确使用递归替换,您可以避免这些问题,保证项目的依赖关系正常运行。在本文中,我们将讨论如何在go.mod中正确使用递归替换,并提供一些实用的技巧和注意事项。

问题内容

我想要一个项目结构,如下所示:

src/github.com/myname/myproject/
- tl:
    - constructor
        - someghing.go
        - go.mod:
            module github.com/myname/myproject/tl/constructor

            require github.com/myname/myproject v0.0.0
            require github.com/myname/myproject/tl/types v0.0.0
            require github.com/myname/myproject/tl/types/account v0.0.0
            require github.com/myname/myproject/tl/types/auth v0.0.0
            require github.com/myname/myproject/tl/types/bots v0.0.0

            replace github.com/myname/myproject v0.0.0 => ./../..
            replace github.com/myname/myproject/tl/types v0.0.0 => ./../types
            replace github.com/myname/myproject/tl/types/account v0.0.0 => ./../types/account
            replace github.com/myname/myproject/tl/types/auth v0.0.0 => ./../types/auth
            replace github.com/myname/myproject/tl/types/channels v0.0.0 => ./../types/channels
    - crcs
        - someghing.go
        - go.mod:
            module github.com/myname/myproject/tl/crcs

    - functions
        - account
            - someghing.go
            - go.mod:
                module github.com/myname/myproject/tl/functions/account

                require github.com/myname/myproject/tl/crcs v0.0.0
                require github.com/myname/myproject v0.0.0
                require github.com/myname/myproject/tl/types v0.0.0

                replace github.com/myname/myproject/tl/crcs v0.0.0 => ./../../crcs
                replace github.com/myname/myproject v0.0.0 => ./../../..
                replace github.com/myname/myproject/tl/types v0.0.0 => ./../../types
        - auth
            - someghing.go
            - go.mod:
                module github.com/myname/myproject/tl/functions/auth

                require github.com/myname/myproject/tl/crcs v0.0.0
                require github.com/myname/myproject v0.0.0
                require github.com/myname/myproject/tl/types v0.0.0

                replace github.com/myname/myproject/tl/crcs v0.0.0 => ./../../crcs
                replace github.com/myname/myproject v0.0.0 => ./../../..
                replace github.com/myname/myproject/tl/types v0.0.0 => ./../../types
        - bots
            - someghing.go
            - go.mod:
                module github.com/myname/myproject/tl/functions/bots

                require github.com/myname/myproject/tl/crcs v0.0.0
                require github.com/myname/myproject v0.0.0
                require github.com/myname/myproject/tl/types v0.0.0

                replace github.com/myname/myproject/tl/crcs v0.0.0 => ./../../crcs
                replace github.com/myname/myproject v0.0.0 => ./../../..
                replace github.com/myname/myproject/tl/types v0.0.0 => ./../../types
        - someghing.go
        - go.mod:
            module github.com/myname/myproject/tl/functions

            require github.com/myname/myproject/tl/crcs v0.0.0
            require github.com/myname/myproject v0.0.0
            require github.com/myname/myproject/tl/types v0.0.0

            replace github.com/myname/myproject/tl/crcs v0.0.0 => ./../crcs
            replace github.com/myname/myproject v0.0.0 => ./../..
            replace github.com/myname/myproject/tl/types v0.0.0 => ./../types
    - types
        - account
            - something.go
            - go.mod:
                module github.com/myname/myproject/tl/types/account

                require github.com/myname/myproject/tl/crcs v0.0.0
                require github.com/myname/myproject v0.0.0
                require github.com/myname/myproject/tl/types v0.0.0

                replace github.com/myname/myproject/tl/crcs v0.0.0 => ./../../crcs
                replace github.com/myname/myproject v0.0.0 => ./../../..
                replace github.com/myname/myproject/tl/types v0.0.0 => ./..

        - auth
            - something.go
            - go.mod:
                module github.com/myname/myproject/tl/types/auth

                require github.com/myname/myproject/tl/crcs v0.0.0
                require github.com/myname/myproject v0.0.0
                require github.com/myname/myproject/tl/types v0.0.0

                replace github.com/myname/myproject/tl/crcs v0.0.0 => ./../../crcs
                replace github.com/myname/myproject v0.0.0 => ./../../..
                replace github.com/myname/myproject/tl/types v0.0.0 => ./..
        - channels
            - something.go
            - go.mod:
                module github.com/myname/myproject/tl/types/channels

                require github.com/myname/myproject/tl/crcs v0.0.0
                require github.com/myname/myproject v0.0.0
                require github.com/myname/myproject/tl/types v0.0.0

                replace github.com/myname/myproject/tl/crcs v0.0.0 => ./../../crcs
                replace github.com/myname/myproject v0.0.0 => ./../../..
                replace github.com/myname/myproject/tl/types v0.0.0 => ./..
        - someghing.go
        - go.mod:
            module github.com/myname/myproject/tl/types

            require github.com/myname/myproject/tl/crcs v0.0.0
            require github.com/myname/myproject v0.0.0

            replace github.com/myname/myproject/tl/crcs v0.0.0 => ./../crcs
            replace github.com/myname/myproject v0.0.0 => ./../..
- something.go
- go.mod:
    module github.com/myname/myproject

    [some external dependencies]
    require github.com/myname/myproject/tl/types v0.0.0
    replace github.com/myname/myproject/l/types v0.0.0 => ./tl/types

这不起作用。我使用 jetbrains 的 ide,它在所有(子)模块上执行 go list,并告诉我以下错误:

go: GitHub.com/myname/myproject/tl/[email protected] requires
    github.com/myname/myproject/tl/[email protected]: reading github.com/myname/myproject/tl/crcs/go.mod at revision tl/crcs/v0.0.0: unknown revision tl/crcs/v0.0.0

我不明白为什么会发生这种情况,看起来它尝试从存储库中获取模块,即使所有内容都在本地替换。 除了改变项目结构之外,我愿意接受建议。我将来需要能够使用 account.sometype 之类的东西,因此将所有内容都放在一个文件中会很痛苦。

上下文:我正在为电报构建 mtproto 库,它具有 tl 模式,其中每个“请求”/“类”都在自己的命名空间中(例如“帐户”、“通道”)(或在全局命名空间中,例如我是 functionstypes 相应)(因为这些函数/类有超过 1900 个,每个函数/类都有自己的构造函数和参数,因此将所有内容都放在一个模块中将很难使用)

tl文件夹中的文件是从tl模式自动生成的go代码。

解决方法

感谢Dean指出您可以在一个模块中包含多个包(如何?)。它解决了我的问题,同时仍然保持相同的结构。

以上就是如何在 golang 的 go.mod 中正确使用递归替换?的详细内容,更多请关注编程网其它相关文章!

您可能感兴趣的文档:

--结束END--

本文标题: 如何在 golang 的 go.mod 中正确使用递归替换?

本文链接: https://lsjlt.com/news/562249.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何在 golang 的 go.mod 中正确使用递归替换?
    在使用golang的go.mod时,正确使用递归替换是一个重要的问题。php小编鱼仔为您提供了一些解决方案。递归替换是指在go.mod文件中将某个模块替换为本地目录的方式,以便在开发过...
    99+
    2024-02-09
    overflow
  • 如何正确地将golang中的字符串替换为“贪婪原则”?
    问题内容 我尝试屏蔽字符串,但出了问题 可复制的代码如下,并且需要所有新旧对,如何获取 col1 而不是 col0b ? package main import ( "fmt...
    99+
    2024-02-08
  • PHP如何使用传递的数组递归替换第一个数组的元素
    这篇文章将为大家详细讲解有关PHP如何使用传递的数组递归替换第一个数组的元素,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 使用遞迴函式遞迴替換陣列元素 PHP提供了簡潔而強大的方式來使用遞迴函式遞迴替...
    99+
    2024-04-02
  • 如何在 Golang 中替换正则表达式匹配的文本?
    在 go 中,可使用 regexp.replaceall 函数替换符合正则表达式的文本,该函数需要三个参数:待替换字符串、匹配模式和替换文本。例如,将字符串中 "fox" 替换为 "do...
    99+
    2024-05-14
    golang 正则表达式
  • Java中的什么场景使用递归,如何使用递归
    目录什么是递归?递归有什么优点?迭代和递归的区别递归的三个条件什么场景下适合使用递归场景一场景二总结Java 递归算法一、概述二、应用场景三、示例四、实际示例五、递归的缺点什么是递归...
    99+
    2024-04-02
  • 在vue中如何使用递归函数
    在vue中使用递归函数的方法:1.新建vue.js项目;2.在项目中定义递归函数;3.使用this方法引用递归函数;4.执行代码调用递归函数;具体步骤如下:首先,在vue-cli中创建一个vue.js项目;vue init webpack ...
    99+
    2024-04-02
  • 如何在python中正确的使用goto
    今天就跟大家聊聊有关如何在python中正确的使用goto,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。python是什么意思Python是一种跨平台的、具有解释性、编译性、互动性和...
    99+
    2023-06-07
  • 在Java中如何正确的使用TreeSet
    这期内容当中小编将会给大家带来有关在Java中如何正确的使用TreeSet,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。TreeSet简介TreeSet 是一个有序的集合,它的作用是提供有序的Set集合。...
    99+
    2023-05-31
    java treeset ava
  • HashSet如何正确的在Java中使用
    HashSet如何正确的在Java中使用?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。HashSet 简介HashSet 是一个没有重复元素的集合。它是由HashMap实现...
    99+
    2023-05-31
    java hashset hs
  • 正确使用PyCharm进行代码替换的技巧
    标题:PyCharm操作指南:替换代码的正确姿势 无论是初学者还是资深开发者,在使用PyCharm这一强大的Python集成开发环境时,替换代码都是一个常见的需求。正确、高效地替换代码...
    99+
    2024-02-25
    搜索 替换 pycharm
  • 如何在C++中正确使用ostringstream
    在C++中,ostringstream 是一个输出流类,可以用于将数据转换为字符串。下面是一个示例,展示如何在C++中正确使用ost...
    99+
    2023-09-27
    C++
  • 如何在正确的在JAVA中使用正则表达式
    这篇文章给大家介绍如何在正确的在JAVA中使用正则表达式,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序。...
    99+
    2023-06-06
  • mongodb如何正确的在Spring boot中使用
    这篇文章给大家介绍mongodb如何正确的在Spring boot中使用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。MongoDB是最早热门非关系数据库的之一,使用也比较普遍,一般会用做离线数据分析来使用,放到内网的...
    99+
    2023-05-31
    springboot mongodb
  • 如何在Java中正确的使用注解
    如何在Java中正确的使用注解?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。注解是jdk1.5新增的特性.大家都知道,jdk1.5在java的发展史上有着划时代的意义.而注...
    99+
    2023-05-31
    java 注解 ava
  • 在Python中如何正确使用列表
    这篇文章主要介绍“在Python中如何正确使用列表”,在日常操作中,相信很多人在在Python中如何正确使用列表问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”在Python中如何正确使用列表”的疑惑有所帮助!...
    99+
    2023-06-16
  • 如何使用Golang中的正则表达式库来进行字符串替换
    在Go语言中,正则表达式(Regular expression)可以帮助我们快速地实现字符串匹配、提取和替换等操作,从而提高代码的效率和可读性。在本文中,我们将探讨如何使用Golang中的正则表达式库来进行字符串替换。一、正则表达式基础在开...
    99+
    2023-05-14
  • php中如何使用反斜线替换正斜线
    本文小编为大家详细介绍“php中如何使用反斜线替换正斜线”,内容详细,步骤清晰,细节处理妥当,希望这篇“php中如何使用反斜线替换正斜线”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。PHP中的反斜线和正斜线在PH...
    99+
    2023-07-05
  • 如何正确的在python中使用推导式
    本文章向大家介绍如何正确的在python中使用推导式,主要包括如何正确的在python中使用推导式的使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。python可以做什么Python是一种编程语...
    99+
    2023-06-06
  • 在Java项目中如何正确的使用LinkedList
    本篇文章给大家分享的是有关在Java项目中如何正确的使用LinkedList,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。LinkedList简介LinkedList 是一个继...
    99+
    2023-05-31
    java linkedlist ava
  • 如何正确的在java中使用同步锁
    这篇文章给大家介绍如何正确的在java中使用同步锁,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。同步锁分类对象锁(this)类锁(类的字节码文件对象即类名.class)字符串锁(比较特别)应用场景在多线程下对共享资源的...
    99+
    2023-05-31
    java 同步锁 ava
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作