Hello 算法 Go 代码如何用 go test 运行算法练习并查看测试输出?

发布时间:2026/9/9 16:19:49

Hello 算法 Go 代码如何用 go test 运行算法练习并查看测试输出? Hello 算法 Go 代码如何用 go test 运行算法练习并查看测试输出【免费下载链接】hello-algo《Hello 算法》动画图解、一键运行的数据结构与算法教程。支持简中、繁中、English、日本語提供 Python, Java, C, C, C#, JS, Go, Swift, Rust, Ruby, Kotlin, TS, Dart 等代码实现项目地址: https://gitcode.com/GitHub_Trending/he/hello-algo在 Hello 算法仓库中算法练习的 Go 实现集中在codes/go目录每一章都是一个独立的 Go 包算法源码如quick_sort.go与配套测试文件如quick_sort_test.go放在同一个目录下。这套测试文件遵循 Go 标准testing包的写法因此不需要任何第三方测试框架直接用 Go 工具链自带的go test命令就能运行并通过标准输出查看排序结果等运行信息。本文说明如何装好 Go 环境、进入模块目录运行测试以及如何读懂go test的输出。准备条件安装 Go 环境按照仓库附录中的编程环境安装文档「Go 环境」一节操作下载并安装 Go 工具链安装文档给出了官方下载地址在 VS Code 插件市场安装 Go 扩展按Ctrl Shift P呼出命令栏执行Go: Install/Update Tools并全部勾选安装。安装完成后注意仓库对 Go 版本有明确声明。codes/go/go.mod 的内容为module github.com/krahets/hello-algo go 1.19这说明整个 Go 代码目录是一个模块名称为github.com/krahets/hello-algo且声明要求 Go 1.19。你本机安装的 Go 版本需要满足这个要求否则go test可能直接报错。认识 codes/go 的目录结构与测试文件codes/go下按章节划分包例如chapter_sorting、chapter_searching、chapter_dynamic_programming等另有 pkg 目录存放ListNode、TreeNode等练习共用的数据结构定义。以排序章节为例quick_sort.go是算法源码quick_sort_test.go 是对应的测试文件包含三个测试函数TestQuickSort运行基本版快速排序TestQuickSortMedian运行中位基准数优化版TestQuickSortTailCall运行递归深度优化版。每个测试函数做的事很直接构造一个待排序数组[]int{4, 1, 3, 1, 5, 2}调用quickSort(nums, 0, len(nums)-1)然后用fmt.Println打印排序完成后的数组例如func TestQuickSort(t *testing.T) { q : quickSort{} nums : []int{4, 1, 3, 1, 5, 2} q.quickSort(nums, 0, len(nums)-1) fmt.Println(快速排序完成后 nums , nums) }有一点需要事先了解这些测试函数是「运行算法 打印结果」的写法本身没有断言逻辑。因此go test显示通过说明的是算法运行过程没有 panic 或编译错误而排序结果是否正确需要你自己看打印出来的数组来判断。用 go test 运行算法练习测试所有命令都在模块根目录codes/go下执行必须先进入该目录因为go test依据go.mod定位包运行某一章的全部测试cd codes/go go test ./chapter_sorting/运行时只报告通过/失败结果不打印测试内的fmt.Println内容。要查看测试函数里打印的排序结果加-v参数go test -v ./chapter_sorting/-v模式下go test会逐个显示测试名以及测试的标准输出。示例输出依据测试代码推断实际时间数值可能不同 RUN TestQuickSort 快速排序完成后 nums [1 1 2 3 4 5] --- PASS: TestQuickSort (0.00s) RUN TestQuickSortMedian 快速排序中位基准数优化完成后 nums [1 1 2 3 4 5] --- PASS: TestQuickSortMedian (0.00s) RUN TestQuickSortTailCall 快速排序递归深度优化完成后 nums [1 1 2 3 4 5] --- PASS: TestQuickSortTailCall (0.00s) PASS ok github.com/krahets/hello-algo/chapter_sorting 0.001s如果只想运行模块里全部章节的测试用./...匹配所有包go test ./...如果想按测试名筛选用-run参数其值是正则表达式。由于TestQuickSortMedian、TestQuickSortTailCall都以TestQuickSort为前缀直接写-run TestQuickSort会连带跑完三个测试要精确只跑一个用^...$锚定go test -v -run ^TestQuickSort$ ./chapter_sorting/查看测试输出与判断结果运行后按以下方式判断结果没有FAIL输出末尾出现ok加模块路径、包名的行如上例中ok github.com/krahets/hello-algo/chapter_sorting表示该包的测试全部通过-v模式下每个测试函数前会打印 RUN 测试名其后跟的是测试内fmt.Println的标准输出也就是你要核对的排序结果测试函数内出现 panic 或程序异常时对应测试显示--- FAIL包结果变为FAIL此时需要根据输出中的报错位置回到源码文件如quick_sort.go排查。核对排序结果时对照测试代码中的初始数组[4 1 3 1 5 2]三个版本排序完成后打印的数组都应为升序的[1 1 2 3 4 5]这就是当前测试通过且算法行为符合预期的直观依据。限制与下一步测试命令只能在codes/gogo.mod所在目录下运行在其他目录执行会找不到包测试输出是算法的正常运行打印不是性能或正确性的自动断言结果判断仍依赖你自己比对打印出的数组仓库各语言目录en/、ja/、ru/等下还有各自的codes/go副本本文以根目录codes/go为准。测试跑通后可以结合 快速排序图解文档 阅读算法原理按同样的方式运行其他章节如chapter_searching、chapter_dynamic_programming的*_test.go测试把每章练习都实际跑一遍。【免费下载链接】hello-algo《Hello 算法》动画图解、一键运行的数据结构与算法教程。支持简中、繁中、English、日本語提供 Python, Java, C, C, C#, JS, Go, Swift, Rust, Ruby, Kotlin, TS, Dart 等代码实现项目地址: https://gitcode.com/GitHub_Trending/he/hello-algo创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/9/9 16:14:48

仙剑换引擎争议下的技术复盘:为什么画面进步不等于体验提升

仙剑奇侠传:退钱!你就拿这个考验干部?——老牌IP更换引擎后的技术复盘最近,“退钱”和“老IP新作”被网友放在了一起:有人把影视剧里那句经典台词改写成了“你就拿这个考验老玩家”,配的却是仙剑相关的新作…

2026/9/9 16:14:48

2026 AI算力底座的核心:内存墙、HBM与CXL内存池化全解析

1. 算力底座的核心矛盾:为什么Memory成了AI的命门 过去两年我一直在做AI基础设施相关的架构评估,一个越来越明显的体感是: AI的算力之争,本质上已经变成了内存系统之争。 很多人一谈AI算力底座,第一反应就是GPU卡型号…

2026/9/9 16:14:48

Audacity|免费多轨音频编辑上手指南

Audacity|免费多轨音频编辑上手指南 【免费下载链接】audacity Audio Editor 项目地址: https://gitcode.com/GitHub_Trending/au/audacity 你录完一段播客,删掉口误和长停顿,压掉背景里的空调声,最后导出一个可以直接上传…

2026/9/9 17:14:58

混合变量特征工程实战:编码、缩放与Pipeline完整指南

很多人在机器学习入门和期末项目里都会遇到同一个现象:打开一张数据表,里面既有年龄、收入、房价这样的数值列,又有性别、城市、职业这样的文本列,这两类变量混在同一张表里。如果直接把这张表丢进模型,要么报错&#…

2026/9/9 17:14:58

移动端H5整套源码工程复盘:适配、免登录与WebView踩坑指南

简介:这是一套面向移动端电商场景的H5页面完整源码,适合前端开发者、移动电商从业者及学习者参考,可用于快速搭建商城类页面并理解移动端开发规范。资源共134个文件,压缩包大小2.07MB,包含34个HTML页面、72张PNG图片、…

2026/9/9 17:14:58

Vue 3 + OpenLayers 大屏可视化模板:地图适配到图表封装的完整实践

简介:数据可视化是大屏项目的核心,而地图往往是最难处理的一环。在政企数字化场景,大屏不仅要展示指标,还要呈现地理信息,但底图风格、图层性能、屏幕适配等问题常让开发陷入泥潭。OpenLayers作为专业地图引擎&#xf…

2026/9/9 17:14:58

Vue3 + Element Plus 实现聊天列表:悬停操作、选中高亮与安全删除

做聊天类应用最头疼的交互细节是什么?十个人里至少有八个人会说是列表项的操作逻辑。用户的消息越来越多,会话越堆越长,如果所有操作都堆在明面上,界面会被撑得乱七八糟;如果把操作藏得太深,用户又找不到删…

2026/9/9 17:14:58

基于虹软ArcFace的动态人脸识别Android实现:从Camera2到画框

简介:一份面向移动与桌面开发者的虹软动态人脸识别工程资源,基于 ArcSoft 技术实现了摄像头实时视频流中的人脸检测、追踪与画框识别,尤其适合需要快速接入实时识别能力的应用开发者。压缩包共 137 个文件,约 65.77MB,…

2026/9/9 17:09:58

组合模式实战:从文件系统到Android ViewGroup的树形结构设计

组合模式在GoF那本《设计模式》里的分类属于结构型模式。我第一次读它的时候,觉得名字起得玄乎,认真翻了几遍才反应过来——这不就是在处理"树形结构"吗。说白了,组合模式就是为了让叶子节点和容器节点能用同一种方式去调用&#x…

2026/9/9 13:11:35

超人会飞不算本事:系统稳定依赖清晰规则与边界设计

开头先不绕弯子。“#斯坦李吐槽dc 所以超人是无缘无故会飞的嘛哈哈哈哈哈哈哈锤哥真是技术人才啊!#雷神 #复联”这类调侃式短标题,第一波冲击力在于它把两个宇宙的角色塞进同一个吐槽箱里,但细想一下就能发现,它真正碰到的根本不是…

2026/9/8 7:15:15

超人VS蜘蛛侠:拆解超级IP的影响力与传播方法论

把“蜘蛛侠 vs 超人”放在 CSDN 上聊,可能很多人第一反应是走错片场了。但如果把这两个角色看成“两个持续运营了 80 多年的文化产品”,你会发现,这场比较本质上是两个不同 IP 策略的长期结果对比:超人赢在定义了整个超级英雄题材…

2026/9/9 16:31:09

基于CNN的调制信号识别:MATLAB实现时频图分类实战

简介:本资源是一套面向通信工程与信号处理方向学习者、研究者的深度学习实践方案,聚焦调制信号自动检测与识别这一典型无线通信任务,解决传统方法依赖人工特征、低信噪比下性能下降等痛点。压缩包共12个文件(10.73MB)&…

2026/9/9 0:00:48

MHS模型硬件标准:让大模型像调用软件一样控制物理设备

让Claude真正看着显微镜说“这个细胞形态不太对”,或者让大模型自己调一版机械臂的运动轨迹,这事儿听上去已经很接近科幻片了。但你真上手试一次就会发现,模型不缺智商,缺的是一个能插进显微镜、机械臂、激光控制器里的“通用插座…

2026/9/9 0:00:48

AI五大核心方向详解:从机器学习到大模型,零基础转行选哪条?

会有人告诉我,他想转行学AI,但打开招聘网站一看直接傻眼:机器学习、深度学习、自然语言处理、计算机视觉、大模型应用……满屏都是这些词,好像每个都会一点,又好像每个都离自己很远。还有人上来就问“学Python还是学Ja…

2026/9/9 0:00:49

从50行最小循环到生产级AI引擎:工程化改造全解析

直接说干货。这一章我写的不是那种"hello world跑通某个模型"的教程,而是把AI引擎当做一个真正要上线、要被人调用、要扛流量的系统来聊。从最初只有50行的最小循环,到能够承载生产流量的AI引擎,中间差的不是代码量,而是…

2026/9/7 16:23:03

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/7 22:46:00

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/9 10:21:54

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码