【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.

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

相关推荐
蹊黎1 小时前
C++中vector类的部分简单实现
开发语言·c++·visual studio
大鸡腿同学7 小时前
手心向上,手心向下
后端
程序猿追7 小时前
kotlin-retry 接入鸿蒙后,怎样确认它真的会停止重试
开发语言·kotlin·harmonyos
我是人✓7 小时前
Java文件上传三方式对比:从传统到SpringBoot
java·开发语言
智能直播7 小时前
网络RTMP拉流不卡顿、声音不同步,一文讲透缓冲区、时间戳
开发语言·ffmpeg·php·音视频·视频编解码
CCblandy8 小时前
令牌桶在 0.9 倍负载超发 19%、固定窗口边界放行 20 个:四种限流算法同构实测
后端·python·算法·性能优化·架构
墨云安全8 小时前
内网资产无法暴露到公网,怎么做安全检测?2026 年内网渗透测试的落地路径
开发语言·安全·网络安全·渗透测试·php
摇滚侠9 小时前
《计算机是如何工作的:人人都能懂的计算机软硬件工作原理》第 9 章 机器码与汇编语言 阅读笔记 9
java·开发语言·笔记
Cc.Y9 小时前
Java零基础入门:深入Java核心:文件IO与序列化全解
java·开发语言·python
凤山老林10 小时前
Spring Boot 集成 Sa-Token 实现高可用权限认证:登录鉴权、动态路由权限与接口防重放实战
spring boot·后端·sa-token·bootstrap