fmt.Sprintf
是 Go 语言中的一个函数,用于格式化字符串并返回一个新的字符串。它属于 fmt
包,常用于将数据格式化为字符串,而不是直接输出到控制台。
语法
func Sprintf(format string, args ...interface{}) string
format
:一个格式化字符串,包含占位符,用于指定如何格式化后续的参数。args
:一个可变参数列表,包含要格式化的值。
常用占位符
%s
:字符串%d
:整数%f
:浮点数%t
:布尔值%v
:值的默认格式%+v
:结构体的字段名和值%#v
:值的 Go 语法表示%x
:十六进制表示%g
: 会根据数值自动选择最简洁的表示方式,去掉末尾的零
示例
以下是一些使用 fmt.Sprintf
的示例:
1. 基本用法
package main
import (
"fmt"
)
func main() {
name := "Alice"
age := 30
// 使用 Sprintf 格式化字符串
result := fmt.Sprintf("My name is %s and I am %d years old.", name, age)
fmt.Println(result) // 输出: My name is Alice and I am 30 years old.
}
2. 格式化浮点数
package main
import (
"fmt"
)
func main() {
price := 19.99
formatted := fmt.Sprintf("The price is $%.2f", price)
fmt.Println(formatted) // 输出: The price is $19.99
}
3. 使用结构体
package main
import (
"fmt"
)
type Person struct {
Name string
Age int
}
func main() {
p := Person{Name: "Bob", Age: 25}
result := fmt.Sprintf("Name: %s, Age: %d", p.Name, p.Age)
fmt.Println(result) // 输出: Name: Bob, Age: 25
}
总结
fmt.Sprintf
是一个非常有用的函数,用于创建格式化的字符串。- 它不会直接输出到控制台,而是返回一个字符串,可以用于进一步处理或输出。
- 适用于需要构建复杂字符串的场景,如日志记录、用户消息等。