在Go语言中,fmt
包提供了丰富的格式化文本功能,可以用来格式化字符串、数字、日期等数据类型。通过使用fmt
包中的函数和格式化动词(verbs),我们可以灵活地控制输出的格式。下面将详细介绍如何使用fmt
来格式化文本段落,并提供一些实用的示例。
fmt
包简介fmt
包实现了格式化I/O函数,类似于C语言中的printf和scanf系列函数。它提供了多种函数用于格式化输出到标准输出(stdout)或格式化输入从标准输入(stdin)读取。常用的函数包括:
fmt.Println
:打印一系列值并添加换行符。fmt.Printf
:按照指定的格式打印输出。fmt.Sprintf
:根据格式返回格式化后的字符串。fmt.Fprintf
:将格式化的输出写入io.Writer接口。fmt
包中的格式化动词用于指定输出的格式。以下是一些常用的格式化动词:
%v
:以默认格式显示任何类型的值。%T
:显示值的类型。%d
:以十进制格式显示整数。%b
:以二进制格式显示整数。%x
:以十六进制格式显示整数。%f
:以浮点数格式显示。%t
:以true或false显示布尔值。%s
:显示字符串。%q
:显示带引号的字符串。%p
:显示指针地址。package main
import "fmt"
func main() {
name := "Alice"
age := 30
fmt.Printf("Name: %v, Age: %v\n", name, age)
}
输出:
Name: Alice, Age: 30
package main
import "fmt"
func main() {
number := 255
fmt.Printf("Decimal: %d, Binary: %b, Hexadecimal: %x\n", number, number, number)
}
输出:
Decimal: 255, Binary: 11111111, Hexadecimal: ff
package main
import "fmt"
func main() {
pi := 3.141592653589793
fmt.Printf("Pi with 2 decimals: %.2f\n", pi)
fmt.Printf("Pi with 5 decimals: %.5f\n", pi)
}
输出:
Pi with 2 decimals: 3.14
Pi with 5 decimals: 3.14159
package main
import "fmt"
func main() {
text := "hello world"
fmt.Printf("Quoted string: %q\n", text)
fmt.Printf("Raw string: %s\n", text)
}
输出:
Quoted string: "hello world"
Raw string: hello world
除了基本的格式化功能,fmt
包还支持更高级的功能,如对齐方式、宽度和精度的控制等。例如,使用%-
可以实现左对齐,使用%N
可以指定字段宽度。
package main
import "fmt"
func main() {
fmt.Printf("|%10s|\n", "apple") // 右对齐
fmt.Printf("|%-10s|\n", "banana") // 左对齐
fmt.Printf("|%5.2f|\n", 3.14159) // 精度为2的小数
}
输出:
| apple|
|banana |
| 3.14|