返回顶部
首页 > 资讯 > 后端开发 > GO >如何以新的方式构建 Golang 模块和项目结构
  • 261
分享到

如何以新的方式构建 Golang 模块和项目结构

2024-04-05 00:04:30 261人浏览 八月长安
摘要

哈喽!今天心血来潮给大家带来了《如何以新的方式构建 golang 模块和项目结构》,想必大家应该对Golang都不陌生吧,那么阅读本文就都不会很困难,以下内容主要涉及到,若是你正在学习Golang,

哈喽!今天心血来潮给大家带来了《如何以新的方式构建 golang 模块和项目结构》,想必大家应该对Golang都不陌生吧,那么阅读本文就都不会很困难,以下内容主要涉及到,若是你正在学习Golang,千万别错过这篇文章~希望能帮助到你!

问题内容

自 1.11 以来,模块的使用方式似乎已经改变,我正在尝试了解如何从另一个目录引用模块/包。

假设我有一个文件夹结构 \根\模块1 \根\模块2

我在每个目录中都有一个 go.mod,我可以从 \root 目录访问/使用这些模块

如何从 module1 访问 module2。这些模块没有在任何地方发布(我也不希望它们发布)-我只想访问它们。模块 2 包含我需要在 mondule1 中使用的类型/结构

亲切的问候 马丁


解决方案


老方法

go 模块必须放置在 gopath 中才能使用。

当我开始一个新的 go 项目时,我通常会在 gopath 中创建一个文件夹

cd $gopath
ls

这里有3个文件夹

bin  pkg  src
ls src
>code.cloudfoundry.org  GitHub.com  github.ibm.com  golang.org  gopkg.in  go.uber.org  honnef.co  winterdrache.de

在 src 中,有您使用“go get”命令检索的代码。

这里的所有内容都可以导入(/导出)到您的软件中。

假设这个测试项目:

github.ibm.com/
└── alessio-savi
    └── golog-viewer
        ├── conf
        │   ├── dev.JSON
        │   └── test.json
        ├── database
        │   ├── cloudant
        │   │   └── cloudant.go
        │   └── db2
        │       └── db2.go
        ├── datastructure
        │   └── datastructures.go
        ├── ginprova.go
        ├── readme.md
        ├── request
        │   └── request.go
        └── resources
            └── template01.html

注意:数据结构保存在正确目录中的 go 文件中,以避免循环导入

您可以使用以下导入语句导入 datastructs.go(或您需要的其他文件)

package mypackage

import(
    "github.ibm.com/alessio-savi/golog-viewer/datastructure"
)

在其他文件中(与其他文件在同一个项目中),您可以简单地使用该包并让 ide 帮助您(因为模块/项目位于 gopath 中)

新方式

为了创建新模块,您可以使用新的 go 模块 init gotool 命令。

对于公共源代码,创建新模块的常见方法如下:

go mod init github.com/username/modulename

这将生成两个文件:

  1. go.mod
  2. go.sum

go.mod 文件将包含运行模块所需的每个库/外部 golang 代码。 go.sum 文件将包含库的哈希值。

我将使用我的小型通用库,名为 gogputils

mkdir gogputils
cd $_
go mod init github.com/alessiOSavi/gogputils

现在,您可以将代码中所需的库插入 go.mod 库中。假设您需要 ahocorasick 实现来进行字符串搜索,则 go.mod 文件将包含以下内容:

module github.com/alessiosavi/gogputils

go 1.13

require (
    github.com/alessiosavi/ahocorasick v0.0.3
    golang.org/x/tools v0.0.0-20191031220737-6d8f1af9ccc0 // indirect
)

require 部分中,有所需的软件包列表。现在您可以在代码中导入 ahocorasick 库,如下所示:

import (
    ahocorasick "github.com/alessiosavi/ahocorasick"
)

好了,本文到此结束,带大家了解了《如何以新的方式构建 Golang 模块和项目结构》,希望本文对你有所帮助!关注编程网公众号,给大家分享更多Golang知识!

您可能感兴趣的文档:

--结束END--

本文标题: 如何以新的方式构建 Golang 模块和项目结构

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

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

猜你喜欢
  • 如何以新的方式构建 Golang 模块和项目结构
    哈喽!今天心血来潮给大家带来了《如何以新的方式构建 Golang 模块和项目结构》,想必大家应该对Golang都不陌生吧,那么阅读本文就都不会很困难,以下内容主要涉及到,若是你正在学习Golang,...
    99+
    2024-04-05
  • 构建Maven多模块项目的方法
    目录构建Maven多模块项目创建父模块创建子模块:model层创建子模块:dao模块创建子模块:service层创建子模块:web层编译运行项目Maven相关特性父模块的配置父模块聚...
    99+
    2024-04-02
  • Python开发建议:合理规划项目结构和模块划分
    Python开发是一种简单而又强大的编程语言,常被用于开发各种类型的应用程序。然而,对于初学者来说,可能会在项目结构和模块划分方面遇到一些挑战。一个良好的项目结构和模块划分不仅有助于提高代码的可维护性和可扩展性,还能提升团队开发的效率。在本...
    99+
    2023-11-22
    Python开发 项目结构 模块划分
  • 如何理解Angular项目构建中的组织结构
    如何理解Angular项目构建中的组织结构,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。前几天刚刚把项目的组织结构进行了一次重构,这是前端项目...
    99+
    2024-04-02
  • 理解Golang Facade模式,构建更加优雅的代码结构
    Golang中的Facade模式是一种结构型设计模式,用于为复杂的子系统提供一个简单的接口。它隐藏了子系统的复杂性,并提供了一个更加...
    99+
    2023-10-20
    Golang
  • 第三章:python项目的结构和包的创建
    在python的圈子里,有许多人无偿得公开自己开发的程序库,使用者可以通过pip 命令来安装这些库,我们在发布时需要将其创建成一种特殊的文件,这种文件就是程序包,我们将会在本节学到程序包的制作流程: python项目目录结构以...
    99+
    2023-01-31
    第三章 结构 项目
  • Vue3和TypeScript怎么搭建完整的项目结构
    这篇文章主要讲解了“Vue3和TypeScript怎么搭建完整的项目结构”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Vue3和TypeScript怎么搭建完整的项目结构”吧!一、项目搭建在...
    99+
    2023-06-30
  • navicat中如何新建表的结构
    这篇文章主要介绍navicat中如何新建表的结构,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!首先打开一个数据库。点开数据库,点击【表】,然后再点击【新建表】。在弹出的页面中填上字段...
    99+
    2024-04-02
  • 构建vueSSR项目之如何配置node以及vue-cli3
    小编给大家分享一下构建vueSSR项目之如何配置node以及vue-cli3,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!前言服...
    99+
    2024-04-02
  • Angular结构型指令模块和样式的示例分析
    这篇文章主要介绍了Angular结构型指令模块和样式的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一,结构型指令*是一个语法糖,<a *ngIf="...
    99+
    2023-06-15
  • vue-cli如何快速构建项目以及引入bootstrap、jq
    这篇文章主要介绍vue-cli如何快速构建项目以及引入bootstrap、jq,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!vue-cli脚手架工具快速构建项目架构:。。首先默认了有...
    99+
    2024-04-02
  • 如何优化PHP开发中的代码结构和模块化
    PHP作为一种广泛应用于Web开发的脚本语言,其灵活性和易用性造就了大量的PHP应用程序。然而,随着项目规模的增加和复杂性的提高,开发人员需要更加关注代码结构和模块化,以提高代码的可读性、可维护性和可扩展性。在本文中,我将介绍一些优化PHP...
    99+
    2023-10-21
    优化(Optimize) 优化PHP代码结构 模块化的关键词: PHP开发(PHP development)
  • Angular中结构型指令、模块和样式的示例分析
    这篇文章给大家分享的是有关Angular中结构型指令、模块和样式的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一,结构型指令*是一个语法糖,<a *ngIf="user.login&qu...
    99+
    2023-06-06
  • 使用cuelang,如何在从Golang模块生成的提示模式的结构字段上放置条件
    php小编草莓今天将为大家介绍如何使用cuelang,在从Golang模块生成的提示模式的结构字段上放置条件。cuelang是一种用于定义和验证数据结构的强大语言,可以与Golang无...
    99+
    2024-02-09
  • 如何用Python和Pygame模块构建一个游戏框架
    如何用Python和Pygame模块构建一个游戏框架,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。通过创建一个简单的骰子游戏来探究 Python。现在是来从零制作你自己的游戏的...
    99+
    2023-06-16
  • 如何解决Vue cli构建及项目打包以及出现的问题
    这篇文章主要介绍了如何解决Vue cli构建及项目打包以及出现的问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1. 首先安装node,推...
    99+
    2024-04-02
  • android studio更新gradle错误构建项目失败的解决方法
    一、版本错误 对应版本,修改gradle version,和plusing version两个地方修改gradle version,和plusing version的方法有两种...
    99+
    2022-06-07
    Android Studio studio 方法 gradle Android
  • 开源操作系统:理解其运作方式和技术构建模块
    核心组件 开源操作系统由以下核心组件构成: 内核:作为系统的核心,管理硬件资源、进程和内存。它是开源系统的基础,提供了与硬件交互和执行基本操作的接口。 系统调用:作为一种机制,应用程序与内核进行交互。应用程序使用系统调用来请求内核服务...
    99+
    2024-03-06
    开源操作系统 核心组件 Linux 内核 操作系统架构 系统调用
  • 将结构体类型传递给模块的函数方式是什么?
    哈喽!今天心血来潮给大家带来了《将结构体类型传递给模块的函数方式是什么?》,想必大家应该对Golang都不陌生吧,那么阅读本文就都不会很困难,以下内容主要涉及到,若是你正在学习Golang,千万别错...
    99+
    2024-04-04
  • 如何使用vue-cli脚手架初始化Vue项目下的项目结构
    这篇文章给大家分享的是有关如何使用vue-cli脚手架初始化Vue项目下的项目结构的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。vue-cli是Vue 提供的一个官方命令行工具,...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作