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

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项目中引用包,你可以使用相对路径或者是绝对路径。绝对路径通常是指从 G O P A T H / s r c 或者模块的 GOPATH/src或者模块的 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.kler.cn/news/359044.html

相关文章:

  • 20241021下载B站json格式的字幕并通过python3转换成为SRT格式
  • DNS代理是什么?浅析DNS代理的工作原理及应用
  • 大数据存储计算平台EasyMR:大数据集群动态扩缩容,快速提升集群服务能力
  • 浅谈c#编程中的异步编程
  • @JsonIgnoreProperties做接口对接时使用带来的好处
  • 数据中心母线槽测温监控装置的优势和如何选型
  • AJAX——AJAX 取消请求
  • Linux:线程
  • 详解Oracle审计(二)
  • 什么是SCRM?为什么企业要做SCRM?
  • 5种边界填充
  • 代码随想录第一天|704.二分查找 27.移除元素
  • 【论文精读】把一切转成mesh!MeshAnything和MeshAnythingV2论文解析
  • 使用centos8在docker环境下编译ceph reef并使用s3cmd与awscli测试
  • 【某农业大学计算机网络实验报告】实验五 TCP 运输连接管理
  • RFC2616 超文本传输协议 HTTP/1.1
  • 修改pq_default.ini禁用降噪,解决S905X3电视盒硬解视频画质模糊、严重涂抹得像油画、水彩画的问题
  • 冲击美团!已成功 OC
  • 重磅!望繁信科技与德勤中国签署战略合作协议
  • OneThink ThinkCMS think.cms