当前位置: 首页 > 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模块进行依赖管理。


http://www.mrgr.cn/news/55492.html

相关文章:

  • k8s 配置私有镜像仓库认证
  • 微信小程序中的文件查看方法
  • Yolo目标检测:Yolo v1简介
  • 新一代Linux防火墙已经来临(iptables面临淘汰)
  • 【智能大数据分析 | 实验三】Storm实验:实时WordCountTopology
  • 引领智慧文旅新纪元,开启未来旅游新境界
  • 龙芯+FreeRTOS+LVGL实战笔记(新)——12按键输入初步
  • SpringCloud 入门实战基础篇
  • 写一个自动采集地球前30行业的小程序
  • C++11 异常处理:优势、劣势与规范
  • JS事件和DOM
  • Uboot是如何发现Devicetree并将它传递给Linux的
  • Spring Async异步源码分析
  • 文件 (上)
  • 兴业周报|央行宣布“有力度的降息”他来了
  • GPT+Python)近红外光谱数据分析与定性/定量建模技巧
  • 副业跨境电商卖穿戴甲,新手一个月赚这么多...
  • 在linux中 appimage是什么文件? 为什么能直接运行
  • 扩散模型对抗蒸馏:ADD 和 Latent-ADD
  • 每日一道算法题(Leetcode 20)
  • java如何部署web后端服务
  • InnoDB引擎(架构,事务原理,MVCC详细解读)
  • Python多进程学习与使用:全面指南
  • 杨笠代言风波:京东股价逆流而上?
  • wordcloud分词生成
  • 31.第二阶段x86游戏实战2-遍历技能2(技能二叉树基址)