【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的内容替换如下:

go 复制代码
package main

import (
	"fmt"

	"rsc.io/quote/v4" // 包的名称就是我们在pkg.go.dev中搜索的包的名称
)

func main() {
	fmt.Println(quote.Go()) // 可以在包的对应的API文档中查看包调用的函数
}

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

sh 复制代码
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下载命令的时候都需要设置镜像源了。添加的内容如下所示:

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

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

sh 复制代码
$ go mod tidy

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

三、运行程序

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

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

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

相关推荐
li_Michael_li6 分钟前
Spring Boot中@Valid 与 @Validated 注解的详解
java·spring boot·后端
橘猫云计算机设计27 分钟前
基于springboot钻孔数据管理系统的设计与实现(源码+lw+部署文档+讲解),源码可白嫖!
java·spring boot·后端·信息可视化·汽车·毕业设计
看海的四叔41 分钟前
【Python】Python 100题 分类入门练习题 - 新手友好
开发语言·python·分类·数据分析·python学习
阿猿收手吧!1 小时前
【QT】QPixmap QImage QBitmap QPicture
开发语言·c++·qt
搞程序的心海1 小时前
Scala语言基础:开启你的 Flink 之旅
大数据·开发语言·scala
摆烂工程师1 小时前
Grok3 API 已经全网上线了!并且 Grok3 API 可以免费使用
前端·后端·程序员
增强1 小时前
腾讯云人脸核身服务端实现(一)
后端
Emma歌小白1 小时前
DataFrame 是否不为空
后端
拉丁解牛说技术2 小时前
AI大模型 prompt 工程指南实战
后端·程序员·mcp
有来技术2 小时前
全栈架构后端攻坚:基于 youlai - boot(开源)、Spring Boot 3 与 Spring Security 6 实现企业级权限系统全功能实战手册
java·spring boot·后端