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 可以灵活控制输出格式,适用于调试和日志记录等场景。

回到顶部