fmt格式化文本段落

2025-04发布6次浏览

在Go语言中,fmt包提供了丰富的格式化文本功能,可以用来格式化字符串、数字、日期等数据类型。通过使用fmt包中的函数和格式化动词(verbs),我们可以灵活地控制输出的格式。下面将详细介绍如何使用fmt来格式化文本段落,并提供一些实用的示例。

1. fmt包简介

fmt包实现了格式化I/O函数,类似于C语言中的printf和scanf系列函数。它提供了多种函数用于格式化输出到标准输出(stdout)或格式化输入从标准输入(stdin)读取。常用的函数包括:

  • fmt.Println:打印一系列值并添加换行符。
  • fmt.Printf:按照指定的格式打印输出。
  • fmt.Sprintf:根据格式返回格式化后的字符串。
  • fmt.Fprintf:将格式化的输出写入io.Writer接口。

2. 格式化动词

fmt包中的格式化动词用于指定输出的格式。以下是一些常用的格式化动词:

  • %v:以默认格式显示任何类型的值。
  • %T:显示值的类型。
  • %d:以十进制格式显示整数。
  • %b:以二进制格式显示整数。
  • %x:以十六进制格式显示整数。
  • %f:以浮点数格式显示。
  • %t:以true或false显示布尔值。
  • %s:显示字符串。
  • %q:显示带引号的字符串。
  • %p:显示指针地址。

3. 实践步骤与代码示例

示例1:基本格式化

package main

import "fmt"

func main() {
    name := "Alice"
    age := 30
    fmt.Printf("Name: %v, Age: %v\n", name, age)
}

输出:

Name: Alice, Age: 30

示例2:格式化数字

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

示例3:格式化浮点数

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

示例4:格式化字符串

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

4. 扩展知识

除了基本的格式化功能,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|