Go调试首选fmt.Println和fmt.Printf:前者自动换行空格、适合快速查值;后者需格式符(如%v、%+v)、支持精准控制。注意行号标记、避免循环狂打、防止Printf参数错配等坑。

在 Go 语言中调试最常用的方式就是用 fmt 包输出信息,核心是 fmt.Println 和 fmt.Printf ——前者适合快速看值,后者适合格式化输出、定位问题。
它把每个参数按默认格式打印,参数间加空格,末尾自动换行。适合临时打日志、查变量值,不用记格式符。
fmt.Println(a, b, "hello", c)
{Name:"Tom" Age:25})需要写格式字符串,用占位符(如 %v、%s、%d)匹配参数,适合构造清晰、带上下文的调试信息。
%v:通用打印,推荐日常调试用,结构体、接口、nil 都能安全显示%+v:结构体字段名也打出来,比如 {Name:"Tom" Age:25} → {Name:"Tom" Age:25}(更易读)%#v:输出 Go 语法风格的字面量,适合复制粘贴回代码里测试fmt.Printf("user=%+v, err=%v\n", user, err)
光会打印还不够,加点小习惯能让调试效率翻倍:
立即学习“go语言免费学习笔记(深入)”;
fmt.Printf("[%s:%d] value=%v\n", filepath.Base(__FILE__), __LINE__, x)(需导入 path/filepath)log 包替代 fmt 做正式日志(支持时间戳、级别、输出到文件),但调试阶段 fmt 更轻量Println,可能拖慢程序或刷屏;可用条件包裹:if debug { fmt.Println(...)}
几个新手常遇到的问题:
Printf 时不加 \n,输出会卡在缓冲区或跟下一行挤在一起Printf("%d %s", "abc", 123) 会 panic,顺序和类型必须严格对应%p 打的是内存地址,想看内容用 %v 或 %+v
基本上就这些。Println 快速上手,Printf 精准表达,搭配着用,调试不费劲。
以上就是如何使用Golang打印调试信息_Golang fmt Println与Printf方法说明的详细内容,更多请关注php中文网其它相关文章!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号