
在go语言中,使用fmt.printf格式化整数时,应使用%d作为十进制整数的占位符;若误用%i等不存在的动词,将触发格式错误并输出类似%!i(int=5)的提示信息。
在go语言中,使用fmt.printf格式化整数时,应使用%d作为十进制整数的占位符;若误用%i等不存在的动词,将触发格式错误并输出类似%!i(int=5)的提示信息。
Go语言的fmt包采用与C语言类似的格式化语法,但并不支持%i(该动词在C中虽常与%d等价,但在Go中未定义)。当传入非法动词(如%i)时,fmt.Printf不会 panic,而是以%!i(int=5)这类可读性较差的格式回显原始值和类型,这是Go为避免静默失败而设计的容错机制。
✅ 正确写法如下:
var count int = 5
fmt.Printf("count:%d\n", count) // 输出:count:5
? 常用整数格式动词一览:
Go语言(Golang)1.26.0版本提供 Go 官方 Windows amd64 MSI 安装包下载入口,版本号 1.26.0,可用于旧项目维护、兼容性测试和指定版本开发环境配置。
- %d:十进制整数(最常用,推荐默认使用)
- %b:二进制(如 101)
- %o:八进制(如 5 → 5,8 → 10)
- %x / %X:十六进制小写/大写(如 255 → ff / FF)
- %v:默认格式(对int即等价于%d,但更通用,适用于任意类型)
⚠️ 注意事项:
- Go不支持%i、%u(无符号整数需显式转换类型后配合%d或%v使用)、%ld等C风格扩展;
- 若需格式化无符号整数(如uint32),直接使用%d或%v即可,无需类型修饰符;
- 所有格式动词均区分大小写,%D或%I均为非法动词,行为同%i。
官方权威文档位于 https://pkg.go.dev/fmt(推荐使用 pkg.go.dev 替代已归档的 golang.org/pkg/fmt),其中“Printing”章节详细列出了所有动词、标志(如+、`、0)、宽度与精度规则,是掌握fmt`格式化的首选参考。
golang免费学习笔记(深入):立即使用
在学习笔记中,你将探索golang的核心概念和高级技巧!










