【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.rhkb.cn/news/183840.html

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

相关文章

个性化联邦学习-综述

介绍阅读的三篇个性化联邦学习的经典综述文章 Three Approaches for Personalization with Applications to Federated Learning 论文地址 文章的主要内容 介绍了用户聚类,数据插值,模型插值三种个性化联邦学习的方法。 用户聚类: 目的&a…

快速解决mfc140u.dll丢失问题,找不到mfc140u.dll修复方法分享

在计算机使用过程中,我们可能会遇到各种问题,其中之一就是某些dll文件丢失。最近,我就遇到了一个关于mfc140u.dll丢失的问题。mfc140u.dll是Microsoft Foundation Class(MFC)库中的一个动态链接库文件,它包…

Tomcat,jdk下载配置(发布项目)

Tomcat,jdk下载, 远程连接 启动以下服务 高级设置 允许别人连接进来 网上搜索jdk下载即可 双击下一步即可 下一步 输入java,看有没有安装成功 这是安装成功的 Tomcat就可以安装了 和以上操作一样,在网上下载安装包,…

手把手教你搭建属于自己的服务器

最近总是想搭建自己的网站,奈何皮夹里空空如也,服务器也租不起,更别说域名了。于是我就寻思能否自己搭建个服务器,还不要钱呢? 还真行!!! 经过几天的冲浪,我发现有两个…

SpringBoot文件上传

SpringBoot文件上传 上传文件是互联网中常常应用的场景之一&#xff0c;最典型的情况就是上传头像等&#xff0c;今天就带着带着大家做一个 Spring Boot 上传文件的小案例。 1、pom依赖 <?xml version"1.0" encoding"UTF-8"?> <project xml…

pytest中的pytest.ini

[pytest] filterwarnings ignore::DeprecationWarning addopts -v -s markers uat:1 smok:2 log_cli1 xfail_strict True filterwarnings ignore::DeprecationWarning 这个的功能就是 test_login.py::Test_login::test_login_correct_password PASSEDwarnings summary …

[答疑]大老二和德州扑克-属性值没变,状态怎么变了

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 邬俊杰 2023-10-31 21:20 课上说状态是由属性值决定的&#xff0c;比如身高>170算高&#xff0c;某人身高175&#xff0c;算高。如果规则改了&#xff0c;身高>180算高&#xf…

C语言——循环结构

C语言提供了while&#xff0c;do...while&#xff0c;for三种语句构成循环结构。循环语句是程序中的一个基本语句&#xff0c;在编程中&#xff0c;如果我们需要对某些操作对象进行相同的操作&#xff0c;那么&#xff0c;使用循环语句&#xff0c;就能让计算机反复执行&#x…

【渗透测试】垂直越权(高危)、水平越权(中危)

目录 一、简介1.1 水平越权&#xff08;中危&#xff09;1.2 垂直越权&#xff08;高危&#xff09;1.3 方便记忆方法 二、修复方案2.1 水平越权修复2.2 垂直越权修复 一、简介 1.1 水平越权&#xff08;中危&#xff09; 漏洞危害&#xff1a; 水平越权 是相同级别&#xff0…

修改iframe生成的pdf的比例

如图想要设置这里的默认比例 在iframe连接后面加上#zoom50即可&#xff0c;50是可以随便设置的&#xff0c;设置多少就是多少比例 <iframe src"name.pdf#zoom50" height"100%" width"100%"></iframe>

算法打卡01——求两数之和

题目&#xff1a; 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是&#xff0c;数组中同一个元素在答案里不能重复出现。 你…

macOS 下 starUML 软件激活方案

starUML每次打开都弹出提示其实挺烦的&#xff0c;于是研究了一下如何 po 解(激活)它。记录一下方法以便以后使用。 我觉得这个软件很好用&#xff0c;大型项目的所有图我都是用这个软件画的。 直接上步骤&#xff01;先关掉starUML 1、安装 asar&#xff0c;以便可以打开 asa…

Python万圣节礼物

文章目录 系列文章前言小海龟快速入门万圣节蝙蝠万圣节南瓜头万圣节礼物尾声 系列文章 序号文章目录直达链接1浪漫520表白代码https://want595.blog.csdn.net/article/details/1306668812满屏表白代码https://want595.blog.csdn.net/article/details/1297945183跳动的爱心http…

(附源码)springboot学生宿舍管理系统 毕业设计 211955

摘 要 科技进步的飞速发展引起人们日常生活的巨大变化&#xff0c;电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用。信息时代的到来已成为不可阻挡的时尚潮流&#xff0c;人类发展的历史正进入一个新时代。在现实运用中&#xff0c;应用软件的工作…

如何实现Word文档中的书签双向定位

工作中&#xff0c;经常需要拟定合同&#xff0c;一般都有固定的模板&#xff0c;在特定的位置填写内容。通过zOffice编辑合同文件时&#xff0c;可以在模板需要填写的位置预设书签&#xff0c;配合zOffice SDK使用&#xff0c;利用zOffice书签双向定位的特性&#xff0c;更方便…

C++基础——类与对象

1 概述 C是面向对象的语言&#xff0c;面向对象语言三大特性&#xff1a;封装、继承、多态。 C将万事万物抽象为对象&#xff0c;对象上有其属性和行为。 2 封装 2.1 封装的意义 封装是面向对象的三大特性之一&#xff0c;封装将属性和行为作为一个整体&#xff0c;对属性和…

设计模式——建造者模式

目录 建造者模式盖房项目需求基本介绍四个角色实例代码注意事项和细节抽象工厂模式 VS 建造者模式 建造者模式 盖房项目需求 传统方式&#xff1a;打地基&#xff0c;砌墙&#xff0c;封顶 盖房子步骤 public abstract class AbstractHouse {// 地基public abstract void b…

运行java命令出现 Error: Invalid or corrupt jarfile XXX.jar

朋友 我当你一秒朋友 朋友 我当你一世朋友 奇怪 过去再不堪回首 怀缅 时时其实还有 运行java命令出现 Error: Invalid or corrupt jarfile XXX.jar 基本可以断定&#xff0c;是jar不完整导致的。不完整&#xff01;&#xff01;&#xff01;记住关键字 检查1&#xff1a; …

解决 SSLError: HTTPSConnectionPool(host=‘huggingface.co‘, port=443)

看我的回答&#xff1a; https://github.com/huggingface/transformers/issues/17611#issuecomment-1794486960 能问这个问题的都是网络不太好的&#xff0c;你懂的&#xff0c;所以答案全是解决网络的。 得益于这个回答&#xff1a;#17611 (comment) 看了一下代码&#xf…

时序预测 | MATLAB实现WOA-CNN-BiLSTM-Attention时间序列预测(SE注意力机制)

时序预测 | MATLAB实现WOA-CNN-BiLSTM-Attention时间序列预测&#xff08;SE注意力机制&#xff09; 目录 时序预测 | MATLAB实现WOA-CNN-BiLSTM-Attention时间序列预测&#xff08;SE注意力机制&#xff09;预测效果基本描述模型描述程序设计参考资料 预测效果 基本描述 1.MAT…