当前位置: 首页 > 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…...

如何快速实现智能自动化配置:OpCore-Simplify完整实战指南

如何快速实现智能自动化配置&#xff1a;OpCore-Simplify完整实战指南 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify OpCore-Simplify是一款专为Hack…...

requests - 简单好用的HTTP请求库

一、什么是requests&#xff1f; requests 是一个用于发送HTTP请求的 Python 库。 它可以帮助你&#xff1a; 轻松发送GET、POST、PUT、DELETE等请求处理Cookie、会话等复杂性自动解压缩内容处理国际化域名和URL 二、应用场景 requests 广泛应用于以下实际场景&#xff1a;…...

深入解析OpenWrt无线初始化:mac80211.sh脚本核心功能与实战应用

1. 初识mac80211.sh&#xff1a;OpenWrt无线初始化的核心引擎 当你第一次刷入OpenWrt固件时&#xff0c;有没有好奇过路由器是如何自动创建无线网络的&#xff1f;这一切的秘密都藏在/lib/wifi/mac80211.sh这个脚本中。作为OpenWrt无线子系统的"大脑"&#xff0c;这个…...

[RK3588-Android12] BQ25703充电IC状态检测与电池图标动态显示的实现

1. 理解BQ25703充电IC与Android电源管理的关系 在RK3588平台上开发Android12系统时&#xff0c;电源管理是个绕不开的话题。BQ25703作为一款高性能充电IC&#xff0c;负责处理设备充电过程中的各种状态转换。我最近在项目中就遇到了一个典型问题&#xff1a;当DC电源插入时&…...

Jira替代工具如何选?2026年推荐十款适合小团队且容易上手项目管理平台

在数字化转型浪潮席卷全球的背景下&#xff0c;企业尤其是科技驱动型组织正加速将敏捷与精益理念融入核心运营流程。根据Gartner发布的报告&#xff0c;到2025年&#xff0c;超过80%的软件项目将采用敏捷或混合开发模式&#xff0c;这使得能够支撑高效协作与透明化管理的项目管…...

从异或到AES:Java类文件加密的3种实现方式对比(含性能测试)

从异或到AES&#xff1a;Java类文件加密的3种实现方式对比&#xff08;含性能测试&#xff09; 在Java开发领域&#xff0c;代码保护始终是开发者关注的焦点。当项目涉及商业机密或核心算法时&#xff0c;防止class文件被反编译成为刚需。本文将深入剖析三种不同安全级别的clas…...

【Web前端】深入解析JavaScript异步编程

JavaScript的异步编程是其核心特性之一&#xff0c;也是理解JavaScript运行机制的关键。下面我从几个方面详细介绍。一、为什么需要异步编程&#xff1f;JavaScript 是单线程语言&#xff0c;意味着同一时间只能做一件事。如果没有异步编程&#xff0c;当遇到耗时操作&#xff…...

Openclaw 股票分析助手,自定义选股+情绪预警实时推送

最近我越来越觉得&#xff0c;炒股这件事&#xff0c;难的不是完全看不懂&#xff0c;而是你根本没那么多时间&#xff0c;把该看的东西全都看一遍。平时工作忙一点&#xff0c;白天不是在开会&#xff0c;就是在处理各种事情。别说一直盯着盘面了&#xff0c;有时候连行情软件…...

Flexible H-Tree实战:如何在复杂SoC设计中实现低延迟时钟分布(附Cadence Innovus配置指南)

Flexible H-Tree实战&#xff1a;复杂SoC设计中的低延迟时钟分布艺术 时钟网络就像芯片的神经系统&#xff0c;每一个脉冲都决定着数十亿晶体管的协同工作。在28nm以下的复杂SoC设计中&#xff0c;时钟分布网络的设计难度呈指数级增长——宏单元的不规则分布、跨电压域时序收敛…...

智能体迁移学习完整实践:从零到一的快速适配指南 [特殊字符]

智能体迁移学习完整实践&#xff1a;从零到一的快速适配指南 &#x1f680; 【免费下载链接】hello-agents &#x1f4da; 《从零开始构建智能体》——从零开始的智能体原理与实践教程 项目地址: https://gitcode.com/datawhalechina/hello-agents 想要让智能体快速适应…...