
在go语言中,使用fmt.printf打印整数时应使用%d作为格式化占位符,而非%i;%d代表十进制整数,能正确输出如"count:5",而%i会导致格式错误并显示意外字符串。
在go语言中,使用fmt.printf打印整数时应使用%d作为格式化占位符,而非%i;%d代表十进制整数,能正确输出如"count:5",而%i会导致格式错误并显示意外字符串。
Go标准库fmt包提供了一套简洁而强大的格式化语法,其中整数类型有多个可用的格式化动词(verbs),但最常用、最推荐的是%d——它表示以带符号十进制(base-10)形式输出整数。
例如:
var count int = 5
fmt.Printf("count:%d\n", count) // 输出:count:5若误用%i(如C语言习惯),Go并不会识别该动词,而是将其视为字面量%i,并因无法匹配参数而触发默认错误处理,输出类似%!i(int=5)的提示信息——这并非有效格式化,而是fmt包对未知动词的容错反馈。
✅ 正确整数格式化动词一览(常用):
立即学习“go语言免费学习笔记(深入)”;
- %d:十进制整数(推荐,默认选择)
- %b:二进制(无符号)
- %o:八进制
- %x / %X:十六进制(小写/大写)
- %v:值的默认格式(对int也输出十进制,但不显式指定进制)
⚠️ 注意事项:
- Go中没有%i——它不是合法的fmt动词,切勿与C/C++或Python的%i混淆;
- 所有动词均以%开头,后接单个字母(可选修饰符如%04d、%+d等需额外组合);
- 官方完整文档位于 https://www.php.cn/link/8b48a57422b76904b5c3ecde9d4af512(新版文档地址,替代已归档的golang.org/pkg/fmt),其中“Printing”章节详述了动词语法、修饰符规则及示例。
总结:打印整数,请始终优先使用%d;遇到格式异常输出(如%!d(...)或%!i(...)),应首先检查动词拼写是否正确,并查阅fmt包官方文档确认支持的动词列表。


















