fmt.Printf 是 Go 语言中一个功能强大的输出格式化函数,主要用于格式化字符串并将结果输出到标准输出(通常是控制台)。
fmt.Printf 按照指定的格式化字符串对后续变量进行格式化,语法如下:
fmt.Printf(格式化样式, 参数列表…)
实例
输出结果为:
hello, John Doe hello, JOHN DOE John Doe is 27 years old John Doe is %!f(int=27) years old
Go 字符串格式化符号:
格式化字符串由常规文本和格式化占位符组成。
格式化占位符以 % 开头,后接一个或多个字符,指明格式化类型。
格式化占位符的结构为:
%[flags][width][.precision]verb
1. 格式化整数
fmt.Printf("十进制: %d, 二进制: %b, 八进制: %o, 十六进制: %x\n", 42, 42, 42, 42) // 输出:十进制: 42, 二进制: 101010, 八进制: 52, 十六进制: 2a
2. 格式化浮点数
fmt.Printf("普通: %f, 科学计数法: %e, 自动: %g\n", 123.456, 123.456, 123.456) // 输出:普通: 123.456000, 科学计数法: 1.234560e+02, 自动: 123.456
3. 格式化字符串
fmt.Printf("普通字符串: %s, 带引号: %q, 十六进制: %x\n", "Go", "Go", "Go") // 输出:普通字符串: Go, 带引号: "Go", 十六进制: 476f
4. 使用宽度和对齐
fmt.Printf("|%10s|%-10s|\n", "right", "left") // 输出:| right|left |
5. 格式化结构体
type User struct { Name string Age int } user := User{Name: "Alice", Age: 30} fmt.Printf("默认: %v\n带字段名: %+v\nGo语法: %#v\n", user, user, user) // 输出: // 默认: {Alice 30} // 带字段名: {Name:Alice Age:30} // Go语法: main.User{Name:"Alice", Age:30}
6. 格式化布尔值
fmt.Printf("布尔值: %t, %t\n", true, false) // 输出:布尔值: true, false
{1 2} {x:1 y:2} main.point{x:1, y:2} main.point true 123 1110 ! 1c8 78.900000 1.234000e+08 1.234000E+08 "string" "\"string\"" 6865782074686973 0xc0000b4010 | 12| 345| | 1.20| 3.45| |1.20 |3.45 | | foo| b| |foo |b | a string an error
返回:Go 语言基础语法