当前位置: 首页 > news >正文

go 包相关知识

在Go语言中,包的引用和搜索路径是由环境变量GOPATH和GO111MODULE共同决定的。

GOPATH环境变量:这个变量定义了默认的工作目录,Go命令行工具将会在这个目录下查找包文件。这个目录通常包含三个子目录:src、bin和pkg。

src目录包含所有的源代码。

bin目录存放编译后的可执行文件。

pkg目录存放编译后的包文件。

GO111MODULE环境变量:这个变量用来开启或关闭模块支持。

如果GO111MODULE=off,那么Go会使用GOPATH来查找依赖,并且依赖会被安装到GOPATH中src同级的bin和pkg目录。

如果GO111MODULE=on或者未设置但项目根目录下有go.mod文件,Go将使用模块系统。在这种情况下,依赖关系将被下载到一个特定的$GOPATH/pkg目录,而不是GOPATH的src目录外,并且编译的可执行文件将不会放入GOPATH/bin,除非你显式地设置了GOBIN环境变量。

设置这些环境变量通常在你的shell配置文件中进行,例如.bashrc、.bash_profile或.zshrc。

例如,在bash shell中设置GOPATH和GO111MODULE:

export GOPATH=$HOME/go
export GO111MODULE=on
export GOPRIVATE=github.com/mycorp/*
export PATH=$PATH:$GOPATH/bin

在这个例子中,我们将GOPATH设置为用户主目录下的go文件夹,开启了模块支持,设置了私有模块的访问权限,并且将Go的可执行文件目录添加到了PATH环境变量中。

在Go项目中引用包,你可以使用相对路径或者是绝对路径。绝对路径通常是指从 $GOPATH/src或者模块的$GOPATH/pkg目录开始的路径。相对路径是指项目内部的路径。

例如,引用同一个GOPATH中的另一个项目的包:

import "myproject/anotherpackage"

引用模块代理下的包(当GO111MODULE=on时):

import "rsc.io/quote"

引用标准库中的包:

import "fmt"

引用外部模块中的包(通常在go.mod文件所在目录下):

import "github.com/gin-gonic/gin"

注意,在Go 1.16及以后的版本中,GO111MODULE默认是开启的,并且GOPATH的功能已经被减少,主要用于兼容老的代码。在新的项目中,建议使用Go模块进行依赖管理。

相关文章:

go 包相关知识

在Go语言中,包的引用和搜索路径是由环境变量GOPATH和GO111MODULE共同决定的。 GOPATH环境变量:这个变量定义了默认的工作目录,Go命令行工具将会在这个目录下查找包文件。这个目录通常包含三个子目录:src、bin和pkg。 src目录包含…...

机器学习:opencv--人脸检测以及微笑检测

目录 前言 一、人脸检测的原理 1.特征提取 2.分类器 二、代码实现 1.图片预处理 2.加载分类器 3.进行人脸识别 4.标注人脸及显示 三、微笑检测 前言 人脸检测是计算机视觉中的一个重要任务,旨在自动识别图像或视频中的人脸。它可以用于多种应用&#xff0…...

linux系统挂载硬盘

参考链接:https://www.cnblogs.com/wenhainan/p/12292823.html (1)lsblk命令查看磁盘挂载情况 (2)使用fdisk分区新磁盘 如果要分多个分区需指定每个分区的大小 (3)格式化新分区 mkfs命令格…...

MySQL实现主从同步

一、首先我们准备3台mysql 分别为: 主服务器:test-mysql-master,端口3306 从服务器:test-mysql-slave1,端口3307 从服务器:test-mysql-slave2,端口3308 注意:如果防火墙是开着的记得把关掉,并且重启docker…...

人工智能--数学基础

目录 ​编辑2.1 线性代数基础 2.2 微积分及优化理论 2.3 概率论与统计学 2.4 信息论简介 2.1 线性代数基础 线性代数是处理向量空间(包括有限维或无限维)以及这些空间上的线性映射的一门数学分支。在线性代数中,最核心的概念包括向量、矩…...

2024人工智能技术的普及 如何看待AI技术的应用前景

AI 技术的应用前景十分广阔,但也面临着一些挑战,以下是对其应用前景的一些看法: 积极方面: 多行业深度融合与效率提升5: 医疗领域:AI 在医疗影像分析、辅助诊断、疾病预测等方面具有巨大潜力。例如&#xf…...

日常记录:springboot 2.2.5 + es 6.8.12

前言 最近有用到搜索引擎的功能,这不得把之前的es过程实践一遍,但发现过程坎坷,因为版本太低了。 一、安装es 6.8.12 安装过程跟之前写那章日常记录:elasticsearch 在linux安装_elasticsearch linux安装-CSDN博客一样&#xff0…...

MySQL数据库备份与恢复详解

文章目录 一、为什么需要备份数据库?二、MySQL数据库的备份方式1. 逻辑备份2. 物理备份3. 二进制日志备份 三、恢复数据库1. 使用mysqldump备份文件恢复2. 使用物理备份恢复3. 使用二进制日志恢复 四、备份与恢复的最佳实践五、结语 在日常的数据库运维中&#xff0…...

10.22 MySQL

存储过程 存储函数 存储函数是有返回值的存储过程,存储函数的参数只能是in类型的。具体语法如下: characteristic 特性 练习: 从1到n的累加 ​​​​​​ create function fun1(n int) returns int deterministic begindeclare total i…...

「AIGC」n8n AI Agent开源的工作流自动化工具

n8n AI Agent 是一个利用大型语言模型(LLMs)来设计和构建智能体(agents)的工具,这些智能体能够执行一系列复杂的任务,如理解指令、模仿类人推理,以及从用户命令中理解隐含意图。n8n AI Agent 的核心在于构建一系列提示(prompts),使 LLM 能够模拟自主行为。 传送门→ …...

Android 中获取和读取短信验证码

方法一:通过 SMS Retriever API SMS Retriever API 是 Google 提供的一种安全的方式,可以从系统中获取不需要权限的短信验证码。这种方式不需要请求 READ_SMS 权限,非常适合处理短信验证码的情况。 1. 在 build.gradle 中添加依赖 dependen…...

SQL语句高级查询(适用于新手)

SQL查询语句的下载脚本链接!!! 【免费】SQL练习资源-具体练习操作可以查看我发布的文章资源-CSDN文库https://download.csdn.net/download/Z0412_J0103/89908378 本文旨在为那些编程基础相对薄弱的朋友们提供一份详尽的指南,特别聚…...

main.ts中引入App.vue报错,提示“Cannot find module ‘./App.vue’ or its corresponding type

原因 代码编辑器:vscode ,使用vue3,所以安装了 Volar 插件,可以使 vue 代码高亮显示,不同颜色区分代码块,以及语法错误提示等 提示:如果使用的是vue2,则使用 Vetur 插件&#xff1…...

Android15音频进阶之组音量调试(九十)

简介: CSDN博客专家、《Android系统多媒体进阶实战》一书作者 新书发布:《Android系统多媒体进阶实战》🚀 优质专栏: Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏: 多媒体系统工程师系列【原创干货持续更新中……】🚀 优质视频课程:AAOS车载系统+…...

【Java】常用方法合集

以 DemoVo 为实体 import lombok.Data; import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;Data ExcelIgnoreUnannotated public class ExportPromoteUnitResult {private String id;ExcelProperty(value &qu…...

深入了解Vue Router:基本用法、重定向、动态路由与路由守卫的性能优化

文章目录 1. 引言2. Vue Router的基本用法2.1 基本配置 3. 重定向和命名路由的使用3.1 重定向3.2 命名路由 4. 在Vue Router中如何处理动态路由4.1 动态路由的概念4.2 如何处理动态路由4.3 动态路由的懒加载 5. 路由守卫的实现与性能影响5.1 什么是路由守卫?5.2 路由…...

深入理解InnoDB底层原理:从数据结构到逻辑架构

💡 无论你是刚刚踏入编程世界的新人,还是希望进一步提升自己的资深开发者,在这里都能找到适合你的内容。我们共同探讨技术难题,一起进步,携手度过互联网行业的每一个挑战。 📣 如果你觉得我的文章对你有帮助,请不要吝啬你的点赞👍分享💕和评论哦! 让我们一起打造…...

Linux介绍及操作命令

Linux 是一种开源的操作系统,具有以下特点和优势: 一、稳定性和可靠性 内核稳定 Linux 内核经过多年的发展和优化,具有高度的稳定性。它能够长时间运行而不出现崩溃或故障,适用于服务器和关键任务应用。内核的稳定性得益于其严格的开发流程和质量控制,以及全球开发者社区…...

JS | 详解图片懒加载的6种实现方案

一、什么是懒加载? 懒加载是一种对网页性能优化的方式,比如,当访问一个网页的时候,优先显示可视区域的图片而不是一次加载全部的图片,当需要显示时,再发送请求加载图片。 懒加载 :延迟加载&…...

Java | Leetcode Java题解之第502题IPO

题目&#xff1a; 题解&#xff1a; class Solution {public int findMaximizedCapital(int k, int w, int[] profits, int[] capital) {int n profits.length;int curr 0;int[][] arr new int[n][2];for (int i 0; i < n; i) {arr[i][0] capital[i];arr[i][1] profi…...

086、Python数据压缩与归档:zipfile与tarfile实战笔记

086、Python数据压缩与归档:zipfile与tarfile实战笔记 一、从线上故障说起 上周排查一个生产环境问题:某服务每天生成的日志文件把磁盘撑满了。 查看代码发现,开发同事用 open().write() 直接写文本,一年下来积累了上千个文件。 其实这类场景最适合用压缩归档——既节省空…...

安全生产隐患识别太难?实测实在Agent:AI模型语义分析能力测评详解与信创落地指南

摘要&#xff1a; 步入2026年&#xff0c;安全生产已进入“全量数字化”与“法制化”深度融合的高压期。随着《安全生产法》的持续深化执行&#xff0c;企业面临着海量隐患识别、跨系统数据流转及信创环境适配的三重挑战。传统的人工排查与基于API的自动化手段&#xff0c;在面…...

HTML5中Canvas文本对齐TextAlign与基线控制

...

WordPress全栈性能优化实战:从服务器到前端的加速指南

1. 项目概述与核心价值最近在折腾一个WordPress站点&#xff0c;发现随着内容增多、插件堆叠&#xff0c;前台加载速度越来越慢&#xff0c;尤其是TTFB&#xff08;首字节时间&#xff09;和LCP&#xff08;最大内容绘制&#xff09;指标&#xff0c;简直让人抓狂。相信很多站长…...

从测试驱动到需求驱动:芯片验证范式的深度迁移与实践

1. 从“测试驱动”到“需求驱动”&#xff1a;一次验证范式的深度迁移干了十几年芯片验证&#xff0c;从早期的定向测试到后来的约束随机验证&#xff0c;再到覆盖率驱动验证&#xff0c;我亲眼看着这个领域的复杂度像坐火箭一样往上窜。现在一个SoC项目&#xff0c;动辄几亿门…...

国产多模态大模型“书生”全解析:从邱锡鹏团队到产业未来

国产多模态大模型“书生”全解析&#xff1a;从邱锡鹏团队到产业未来 引言 在ChatGPT引爆全球AI热潮的背景下&#xff0c;国产大模型如何突围&#xff1f;由复旦大学邱锡鹏教授领衔、上海人工智能实验室打造的「书生」&#xff08;InternLM&#xff09;系列&#xff0c;以其独…...

3分钟让你的Windows桌面焕然一新:NoFences开源分区神器

3分钟让你的Windows桌面焕然一新&#xff1a;NoFences开源分区神器 【免费下载链接】NoFences &#x1f6a7; Open Source Stardock Fences alternative 项目地址: https://gitcode.com/gh_mirrors/no/NoFences 你是否每天都要在杂乱无章的桌面图标中寻找需要的文件&…...

R3nzSkin英雄联盟皮肤修改器:深入解析开源内存注入技术实现

R3nzSkin英雄联盟皮肤修改器&#xff1a;深入解析开源内存注入技术实现 【免费下载链接】R3nzSkin Skin changer for League of Legends (LOL) 项目地址: https://gitcode.com/gh_mirrors/r3n/R3nzSkin R3nzSkin 是一款基于内存注入技术的英雄联盟皮肤修改工具&#xff…...

精通 Harness架构 :DeerFlow 2.0 的 lead_agent 任务总调度 架构设计与实现解析

今天不聊虚的&#xff0c;我们直接切进核心代码。 看看它是怎么把责任链模式、配置驱动思维和任务编排哲学&#xff0c;严丝合缝地揉进 LangGraph 骨架里的。顺便对标一下微软 AutoGen AG2 最新的架构演进&#xff0c;你会发现&#xff0c;行业对 Agent 运行时&#xff08;Age…...

Zotero PDF Translate终极配置指南:如何一键激活20+翻译服务

Zotero PDF Translate终极配置指南&#xff1a;如何一键激活20翻译服务 【免费下载链接】zotero-pdf-translate Translate PDF, EPub, webpage, metadata, annotations, notes to the target language. Support 20 translate services. 项目地址: https://gitcode.com/gh_mir…...