在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|