【GO】项目import第三方的依赖包

目录

一、导入第三方包

1.执行命令

2.查看go环境变量参数

3.查看go.mod文件的变化情况

二、程序里如何import 

1. import依赖包

2. 程序编写


本次学习go如果依赖第三方的包,并根据第三方的包提供的接口进行编程,这里需要使用go get命令。下面将go get命令描述如下:

1. go get 命令

命令用于从远程代码仓库(比如 Github )上下载并安装代码包。注意,go get 命令会把当前的代码包下载到 $GOPATH 中的第一个工作区的 src 目录中,并安装。

go 1.17之后go get只下载源码,并将依赖添加到go.mod,并不会安装。安装油go install完成。

2. go run 命令

专门用来运行命令源码文件的命令,一般用来运行单个文件

3. go build命令

主要是用于测试编译。编译某个包或者项目,在当前目录下生成可执行文件

4. go install 命令

编译并安装代码包或者源码文件的。

以上命令参考文章,包括其他命令:go fmt , go version ,go info, go clean , go test, go doc , go env, go list, go fix等

go run、build、install、get的原理和区别 - 知乎

一、导入第三方包

以concurrent_map为例,github地址https://github.com/orcaman/concurrent-map/blob/v2.0.1/concurrent_map.go

需要将concurrent_map包引入工程,需要在我们的项目目录下,也就是go.mod同级目录下

1.执行命令

go get -u "github.com/orcaman/concurrent-map" #-u参数表示最新的版本

执行结果分两种情况

1.1.执行成功提示

# go get -u "github.com/orcaman/concurrent-map"
go: downloading github.com/orcaman/concurrent-map v1.0.0
go: added github.com/orcaman/concurrent-map v1.0.0

1.2. 执行失败提示

go: github.com/orcaman/concurrent-map@v2.0.1: reading 
https://mirrors.aliyun.com/goproxy/github.com/orcaman/concurrent-map/@v/v2.0.1.info: 404 Not Found 

 或者报错,提示timeout

这种情况下是因为环境变了GOPROXY参数配置的代理地址不可访问,需要修改GOPROXY,使用国内

export GOPROXY=https://goproxy.cn
或者
export GOPROXY=https://mirrors.aliyun.com/goproxy/

建议将以上参数添加到操作系统环境变量中。 

2.查看go环境变量参数

go env

然后继续执行命令,发现成功即可。

# go get -u "github.com/orcaman/concurrent-map"
go: downloading github.com/orcaman/concurrent-map v1.0.0
go: added github.com/orcaman/concurrent-map v1.0.0

3.查看go.mod文件的变化情况

module golearninggo 1.20require github.com/orcaman/concurrent-map v1.0.0 // indirect

从中看到多了一行依赖配置

二、程序里如何import 

还是继续以concurrent_map为例,执行为go get 命令后已经下载并更新依赖,程序里需要通过import引入

1. import依赖包

import (cmap "github.com/orcaman/concurrent-map""testing"
)

cmap是包的别名,由于包名太长,程序通过cmap访问接口方便快捷。

2. 程序编写

func TestRemotePckageInvoke(t *testing.T) {userMapping := cmap.New()userMapping.Get("KeyName")
}

参考资料

go run、build、install、get的原理和区别 - 知乎

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

线性【SVM】数学原理和算法实现

一. 数学原理 SVM是一类有监督的分类算法,它的大致思想是:假设样本空间上有两类点,如下图所示,我们希望找到一个划分超平面,将这两类样本分开,我们希望这个间隔能够最大化来使得模型泛化能力最强。 如上图所…

open clip论文阅读摘要

看下open clip论文 Learning Transferable Visual Models From Natural Language Supervision These results suggest that the aggregate supervision accessible to modern pre-training methods within web-scale collections of text surpasses that of high-quality crowd…

hadoop配置文件自检查(解决常见报错问题,超级详细!)

本篇文章主要的内容就是检查配置文件,还有一些常见的报错问题解决方法,希望能够帮助到大家。 一、以下是大家可能会遇到的常见问题: 1.是否遗漏了前置准备的相关操作配置? 2.是否遗的将文件夹(Hadoop安装文件夹,/dat…

图及谱聚类商圈聚类中的应用

背景 在O2O业务场景中,有商圈的概念,商圈是业务运营的单元,有对应的商户BD负责人以及配送运力负责任。这些商圈通常是一定地理围栏构成的区域,区域内包括商户和用户,商圈和商圈之间就通常以道路、河流等围栏进行分隔。…

Promise链式调用改写成async/await

首先,Promise链式调用和async/await都是用来解决异步调用层层嵌套的问题。 promise解决了回调地狱的问题,把异步任务完成后的处理函数换个位置放:传给then方法,并支持链式调用,避免层层回调。用catch方法捕获错误。 …

现一个智能的SQL编辑器

补给资料 管注公众号:码农补给站 前言 目前我司的多个产品中都支持在线编辑 SQL 来生成对应的任务。为了优化用户体验,在使用 MonacoEditor 为编辑器的基础上,我们还支持了如下几个重要功能: 多种 SQL 的语法高亮多种 S…

垃圾回收系统小程序定制开发搭建攻略

在这个数字化快速发展的时代,垃圾回收系统的推广对于环境保护和可持续发展具有重要意义。为了更好地服务于垃圾回收行业,本文将分享如何使用第三方制作平台乔拓云网,定制开发搭建垃圾回收系统小程序。 首先,使用乔拓云网账号登录平…

服务器数据恢复—云服务器mysql数据库表被truncate的数据恢复案例

云服务器数据恢复环境: 阿里云ECS网站服务器,linux操作系统mysql数据库。 云服务器故障: 在执行数据库版本更新测试时,在生产库误执行了本来应该在测试库执行的sql脚本,导致生产库部分表被truncate,还有部…

六种最常见的软件供应链攻击

软件供应链攻击已成为当前网络安全领域的热点话题,其攻击方式的多样性和复杂性使得防御变得极为困难。以下我们整理了六种常见软件供应链攻击方法及其典型案例: 软件供应链攻击已成为当前网络安全领域的热点话题,其攻击方式的多样性和复杂性…

pytorch直线拟合

目录 1、数据分析 2、pytorch直线拟合 1、数据分析 直线拟合的前提条件通常包括以下几点: 存在线性关系:这是进行直线拟合的基础,数据点之间应该存在一种线性关系,即数据的分布可以用直线来近似描述。这种线性关系可以是数据点…

Oracle RAC是啥?

Oracle RAC,全称是Oracle Real Application Cluster,翻译过来为Oracle真正的应用集群,它是Oracle提供的一个并行集群系统,由 Oracle Clusterware(集群就绪软件) 和 Real Application Cluster(RA…

C语言每日一题(25)链表的中间结点

力扣 876. 链表的中间结点 题目描述 给你单链表的头结点 head ,请你找出并返回链表的中间结点。 如果有两个中间结点,则返回第二个中间结点。 思路分析 快慢指针法 用一慢一快指针遍历整个链表,每次遍历,快指针都会比慢指针多…