go module本地包导入

go module本地包导入

本文目录

    • go module本地包导入
      • 启用go mod
      • 主项目工作目录
      • 本地module目录
      • 发布和使用模块

golang 1.11之后加入了go mod来替代GOPATH

官方文档参考:https://golang.google.cn/doc/tutorial/call-module-code

启用go mod

  • 开启 Go modules

    # 临时开启 Go modules 功能
    export GO111MODULE=on
    ![请添加图片描述](https://img-blog.csdnimg.cn/direct/3cda800aae2041f98bef026bc274dba3.jpeg)
    
    # 永久开启 Go modules 功能
    go env -w GO111MODULE=on
    
    # 设置 Go 的国内代理,方便下载第三方包
    go env -w GOPROXY=https://goproxy.cn,direct
    
  • 通过 go env

    go env
    

主项目工作目录

  • 创建一个工作目录

    mkdir myapp
    
  • 新建mod文件

    cd myapp
    go mod init myapp
    
  • 添加函数main.go

    package main
        
    import (
        "fmt"
    )
    
    func main(){
        fmt.Println("This is main")
    }
    
  • 运行

    go run main.go
    

本地module目录

  • 切换目录,新建自己的包

    cd ..
    mkdir mypkg
    go mod init mypkg
    
  • 包内新建hello.go文件

    package mypkg
    
    import "fmt"
    
    func SayHello()string{
        fmt.Println("hello,(print in mypkg)")
        return "success"
    }
    

发布和使用模块

main.go 尝试导入 mydemo.com/mypkg 模块时,Go 工具链会从本地的 ../mypkg 目录加载模块,而不是尝试从远程位置下载

  • 指定包的本地路径

    go mod edit -replace mydemo.com/mypkg=../mypkg
    
  • 在main.go添加自己的包

    package main
     
    import (
        "fmt"
        my "mydemo.com/mypkg"
    )
    
    func main(){
        fmt.Println("This is main")
        flag :=my.SayHello();
        fmt.Println(flag)
    }
    

  • 更新和同步

    go mod tidy
    
  • 查看go mod,已经自动更新

  • 运行

    go run main.go
    
  • 整体目录结构

    └── twogo
        ├── myapp
        │   ├── go.mod
        │   └── main.go
        └── mypkg
            ├── go.mod
            └── hello.go
    
  • 整体流程

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

一文带你了解大模型的RAG(检索增强生成) | 概念理论介绍+ 代码实操(含源码)

针对大型语言模型效果不好的问题,之前人们主要关注大模型再训练、大模型微调、大模型的Prompt增强,但对于专有、快速更新的数据却并没有较好的解决方法,为此检索增强生成(RAG)的出现,弥合了LLM常识和专有数…

数据治理:释放数据价值的关键

随着数字化时代的到来,数据已成为组织和企业最重要的资产之一。然而,数据的快速增长和复杂性也给数据管理带来了巨大的挑战。为了确保数据的质量、安全性和合规性,数据治理已成为组织和企业必须面对的重要问题。数据治理是数据要素市场建设的…

自动驾驶学习笔记(二十三)——车辆控制模型

#Apollo开发者# 学习课程的传送门如下,当您也准备学习自动驾驶时,可以和我一同前往: 《自动驾驶新人之旅》免费课程—> 传送门 《Apollo开放平台9.0专项技术公开课》免费报名—>传送门 文章目录 前言 运动学模型 动力学模型 总结…

Java进阶(第八期): Java中递归的的使用和递归解决一些算法问题 Java中的异常机制、异常的处理逻辑 自定义异常

文章目录 一、递归1.1 递归的介绍1.2 递归的简单练习1.3 图解递归执行流程:1.4 使用递归完成悲波那契数列1.5 猴子吃桃子问题 二、异常三 、异常的处理逻辑3.1 try catch 捕获异常3.2 throws抛出异常 四、自定义异常 Java进阶(第八期) 一、递…

如何安装、配置、启动及访问Nacos

准备 JDK 17.0:https://www.bilibili.com/video/BV1ig4y1k7Bq?p2 MySQL 8.0:https://www.bilibili.com/video/BV1QU4y117Vn Navicat Premium:https://www.bilibili.com/video/BV1F94y1A7nC 1、安装Nacos a、地址 网址:http…

ElasticSearch 架构设计

介绍 ElasticSearchMySQLIndexTableDocumentRowFieldColumnMappingSchemaQuery DSLSQLaggregationsgroup by,avg,sumcardinality去重 distinctreindex数据迁移 ElasticSearch 中的一个索引由一个或多个分片组成 每个分片包含多个 segment(分…

用 Node.js 写一个爬虫

自己设计一个网站,然后去爬取别人家页面的数据来做一个自己的网站。哈哈哈,如果自己写着玩可能没啥事,但如果用这个网站来获利,你可能就要被寄律师函了,毕竟这有点‘刑’。这篇文章呢,就带大家爬取豆瓣TOP2…

HDMI2.1输入转4Port MIPI/LVDS输出,嵌入式SPI闪存固件存储,VR和AR应用首选国产芯片方案-LT6911GXC

描述 LT6911GXC是一款高性能的HDMI2.1到MIPI或LVDS芯片,用于VR/显示应用。 HDCP RX作为HDCP中继器的上游,可配合其他芯片的HDCPTX实现中继器功能。 对于HDMI2.1输入,LT6911GXC可以配置为3/4通道。自适应均衡使其适合于长电缆应用,…

申请虚拟VISA卡Fomepay教程

fomepay 用下面的注册链接直达 https://gpt.fomepay.com/#/pages/login/index?dS21BA1 或者扫描下面图片的二维码直达注册 注册后尽量随用随充值不建议放大量现金在里面。

【论文解读】用于概念标定的逻辑强化大模型LEFT(NeurIPS 2023)

来源:投稿 作者:橡皮 编辑:学姐 论文链接:https://arxiv.org/abs/2310.16035 开源代码:https://github.com/joyhsu0504/LEFT 摘要: VisProg 和 ViperGPT 等最新研究成果巧妙地组成了视觉推理的基础模型-…

vscode配置python环境,步骤以及 chatgpt和csdn AI创作助手回答对比

1解决步骤 参考地址 解决步骤 vscode 安装 python插件,并重启vscode,前提是电脑已经配置了python环境,我的电脑已经安装了anaconda 也有python3 新建文件夹 pythonTst ,vscode中菜单栏 File --Add folder toWordSpace — 弹出框…

PNG免抠素材库,免费下载,可商用~

本期分享5个高质量PNG素材网站,让你在工作中大大提高效率,节省更多的时间,赶紧收藏起来吧~ 1、菜鸟图库 https://www.sucai999.com/searchlist/66008----all-0-1.html?vNTYxMjky 网站主要分享设计素材为主。像平面海报、免抠元素、背景图片…

常见推断方法一览:极大似然估计、最大后验估计、期望最大化、贝叶斯推断、马尔科夫链蒙特卡洛方法、变分推断

常见推断方法一览 推断方法区别频率派极大似然估计 MLE最大后验估计 MAP期望最大化 EM 贝叶斯推断 Bayesian马尔科夫链蒙特卡洛方法 MCMC变分推断 VI 推断方法区别 极大似然估计 (Maximum Likelihood Estimation, MLE): 解释: 假设你有一堆骰子,你投掷它们很多次&am…

行车记录仪变清晰,变高清的办法一定要收藏

有时候我们会发现行车记录仪拍摄的视频不够清晰,特别是出现事故需要视频为证的时候,如果视频太模糊,很难获得交警的支持,那么如何让行车记录仪拍摄的视频变得更加清晰呢? 小编给大家分享几个办法,建议收藏…

Getway介绍和使用

Getway 入门简介 网关搭建步骤: 创建项目,引入nacos服务发现和gateway依赖 配置application.yml,包括服务基本信息、nacos地址、路由 路由配置包括: 路由id:路由的唯一标示 路由目标(uri)…

openGauss学习笔记-180 openGauss 数据库运维-升级-升级前必读

文章目录 openGauss学习笔记-180 openGauss 数据库运维-升级-升级前必读180.1 升级方案180.2 升级前的版本要求180.3 升级影响和升级约束 openGauss学习笔记-180 openGauss 数据库运维-升级-升级前必读 180.1 升级方案 本节为指导用户选择升级方式。 用户根据openGauss提供的…

按摩上门预约小程序源码系统 开发组合:PHP+MySQL 附带完整的搭建教程

现代生活节奏的加快,人们越来越注重健康与放松。按摩作为传统的舒缓方式,市场需求逐年上升。然而,传统的按摩服务预约方式较为繁琐,用户需拨打热线电话或前往实体店进行预约,这无疑增加了用户的操作成本。因此&#xf…

redhat 8 安装openstack

redhat 8 安装openstack 1、安装文档2、redhat 8 安装openstack3、使用openstack 1、安装文档 openstack官方安装文档 https://docs.openstack.org/install-guide/ 2、redhat 8 安装openstack 3、使用openstack

人工智能——移动摄影技术

目录 封面 1 .移动计算摄影简介 2.手机相机的硬件限制 2.1 传感器尺寸和镜头孔径 2.2 噪声和动态范围 2.3 景深 2.4 变焦 2.5 色彩欠采样 3 .相机图像处理流水线 3.1 相机传感器 3.2 相机流水线 5.拓展 1 .移动计算摄影简介 现代数字摄影的进度始终伴随着图像传感器…

云计算IaaS、PaaS和SaaS之

提供的服务来比较如下两图 示例图 示例图