Golang Printf格式化输出
在Golang中使用Printf进行格式化输出时,如何正确使用各种占位符?比如我想输出整数、浮点数和字符串,但不太清楚%d、%f、%s这些格式符的具体用法和区别。另外,如何控制浮点数的小数位数输出?比如保留两位小数应该怎么写格式?还有没有其他常用的格式化技巧可以分享?
2 回复
Golang的Printf函数用于格式化输出,支持多种占位符:
- %v:默认格式
- %d:整数
- %s:字符串
- %f:浮点数
- %t:布尔值
- %p:指针地址
示例:
fmt.Printf("整数:%d,字符串:%s", 123, "hello")
更多关于Golang Printf格式化输出的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
在 Go 语言中,fmt.Printf 函数用于格式化输出,其语法与 C 语言的 printf 类似。基本格式为:
fmt.Printf("格式化字符串", 参数列表)
常用格式化动词(Verbs):
- %v:默认格式输出值(适用于任何类型)
- %+v:输出结构体时包含字段名
- %#v:输出值的 Go 语法表示
- %T:输出值的类型
- %d:十进制整数
- %f:浮点数(默认精度6位)
- %s:字符串
- %t:布尔值(true/false)
- %p:指针地址
- %x:十六进制(小写字母)
- %X:十六进制(大写字母)
示例代码:
package main
import "fmt"
func main() {
name := "Alice"
age := 30
height := 5.7
isStudent := false
fmt.Printf("Name: %s\n", name) // 字符串
fmt.Printf("Age: %d\n", age) // 整数
fmt.Printf("Height: %.1f\n", height) // 浮点数(保留1位小数)
fmt.Printf("Student: %t\n", isStudent) // 布尔值
fmt.Printf("Type of age: %T\n", age) // 类型
fmt.Printf("Value: %v\n", height) // 默认格式
}
输出:
Name: Alice
Age: 30
Height: 5.7
Student: false
Type of age: int
Value: 5.7
其他功能:
- 宽度与精度:
%5.2f(宽度5,精度2) - 对齐:
%-10s(左对齐) - 特殊转义:
%%输出百分号
使用 fmt.Printf 可以灵活控制输出格式,适用于调试和日志记录等场景。

