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

【Go语言成长之路】引入外部包

文章目录

  • 引入外部包
    • 一、查找需要引用的包
    • 二、引入需要导入的包
    • 三、运行程序

引入外部包

​ 实现Demo: 引用rsc.io/quote包来实现打印输出

一、查找需要引用的包

​ 比如说我现在想要找一个quote的包,那么可以通过如下步骤进行操作:

  • 访问pkg.go.dev,并且输入你想要查找的包的名称

    在这里插入图片描述

    注:pkg.go.dev是Go的源代码仓库,你可以在这里找到所有关于Go的源代码以及第三方已发布代码。

  • 之后可以查看自己想要导入的包的相关信息

    在这里插入图片描述

  • 点击对应的包可以查看到包的相关API文档

    主要包括如下几个部分:README、Documentation、Source Files。其中Documentation里面又包含了:Overview、Index、Constants、Variables、Functions、Type。我们可以通过查看包的相关信息学习API的使用方法,以便我们在实际的代码中引用该包。

    在这里插入图片描述

二、引入需要导入的包

​ 和【Go成长之路】Hello Go一样,我们依然在hello工程下进行代码编写。将hello.go的内容替换如下:

package mainimport ("fmt""rsc.io/quote/v4" // 包的名称就是我们在pkg.go.dev中搜索的包的名称
)func main() {fmt.Println(quote.Go()) // 可以在包的对应的API文档中查看包调用的函数
}

​ 之后首先要在hello工程内下载对应的包:

pzs@pzs-ubuntu22:~/go_study/hello$ go env -w GO111MODULE=on
pzs@pzs-ubuntu22:~/go_study/hello$ go env -w  GOPROXY=https://goproxy.cn,direct
pzs@pzs-ubuntu22:~/go_study/hello$ go get rsc.io/quote/v4
go: downloading rsc.io/quote/v4 v4.0.1
go: added rsc.io/quote/v4 v4.0.1

注:这里使用了https://goproxy.cn,direct这个镜像源进行加速下载,因为在国内的环境下有着许多中国 Gopher 们无法获取的模块,比如最著名的 golang.org/x/...,并且在中国大陆从 GitHub 获取模块的速度也有点慢,因此推荐大家使用镜像源进行下载!

​ 当然,为了方便,我们也可以将镜像源直接添加到$HOME/.profile文件末尾处,这样就不用每次使用go get下载命令的时候都需要设置镜像源了。添加的内容如下所示:

# 启用 Go Modules 功能
export GO111MODULE=on
# 阿里云
go env -w GOPROXY=https://goproxy.cn,direct

​ 下载完包之后,还需要添加go.sum文件用于验证我们下载的镜像是否是正确的,没有被篡改,这也是Go语言中基于安全考虑的地方。当然,Go语言不需要我们手动创建这个文件,只需要通过如下命令即可实现:

$ go mod tidy

​ 到此,我们在工程内就可以正常引用我们的包了。

三、运行程序

​ 运行hello.go以查看您正在调用的外部包的函数:

pzs@pzs-ubuntu22:~/go_study/hello$ go run hello.go 
Don't communicate by sharing memory, share memory by communicating.

​ 可以看到,我们成功地引用了外部包quoteGo()函数了~

相关文章:

  • C语言第十七弹---指针(一)
  • 十、Qt三维图表
  • 利用tshark从pcap中解析http流量
  • 如何用gpt快速做好数据分析?
  • [SWPUCTF 2021 新生赛]easy_md5
  • Deepin如何开启与配置SSH实现无公网ip远程连接
  • hivesql的基础知识点
  • Blender使用Rigify和Game Rig Tool基础
  • 【DouYing Desktop】
  • Midjourney新功能介绍:风格参考(Style References)详解
  • 【Springcloud篇】学习笔记十(十七章):Sentinel实现熔断与限流——Hystrix升级
  • Android PMS——ADB命令安装流程(七)
  • Redis常用数据类型--Hash
  • 只用一台服务器部署上线(宝塔面板) 前后端+数据库
  • vue基本理解
  • bearychat的java client
  • cookie和session
  • C语言笔记(第一章:C语言编程)
  • Github访问慢解决办法
  • JavaScript/HTML5图表开发工具JavaScript Charts v3.19.6发布【附下载】
  • Netty 框架总结「ChannelHandler 及 EventLoop」
  • PaddlePaddle-GitHub的正确打开姿势
  • Webpack 4x 之路 ( 四 )
  • 基于游标的分页接口实现
  • 实战:基于Spring Boot快速开发RESTful风格API接口
  • 微信小程序:实现悬浮返回和分享按钮
  • 移动端唤起键盘时取消position:fixed定位
  • 异步
  • ​​​​​​​Installing ROS on the Raspberry Pi
  • ​软考-高级-信息系统项目管理师教程 第四版【第14章-项目沟通管理-思维导图】​
  • # MySQL server 层和存储引擎层是怎么交互数据的?
  • #前后端分离# 头条发布系统
  • %3cscript放入php,跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击
  • (C++17) optional的使用
  • (Matalb回归预测)PSO-BP粒子群算法优化BP神经网络的多维回归预测
  • (二)fiber的基本认识
  • (二)构建dubbo分布式平台-平台功能导图
  • (附源码)springboot青少年公共卫生教育平台 毕业设计 643214
  • (附源码)springboot猪场管理系统 毕业设计 160901
  • (规划)24届春招和25届暑假实习路线准备规划
  • (算法)N皇后问题
  • (转)【Hibernate总结系列】使用举例
  • (转)创业家杂志:UCWEB天使第一步
  • (转载)PyTorch代码规范最佳实践和样式指南
  • **登录+JWT+异常处理+拦截器+ThreadLocal-开发思想与代码实现**
  • .360、.halo勒索病毒的最新威胁:如何恢复您的数据?
  • .MSSQLSERVER 导入导出 命令集--堪称经典,值得借鉴!
  • .net core 调用c dll_用C++生成一个简单的DLL文件VS2008
  • .Net MVC4 上传大文件,并保存表单
  • .NET 跨平台图形库 SkiaSharp 基础应用
  • .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞)
  • .net访问oracle数据库性能问题
  • [AR Foundation] 人脸检测的流程
  • [C++]指针与结构体
  • [codevs 1296] 营业额统计