Go fmt 格式化值宽度

6 min read

Go fmt 提供了格式化值宽度的功能,通过在格式字符串中使用数字控制宽度。

例如,以下代码展示了如何使用 fmt.Printf 函数格式化字符串,并控制宽度为 10:

package main

import "fmt"

func main() {
    s := "hello"
    fmt.Printf("|%10s|\n", s)
}

输出:

|     hello|

在格式字符串 %10s 中,数字 10 表示要输出的字符串宽度为 10,如果字符串长度不足 10,则会在左侧补空格。反之,如果字符串长度大于 10,则不会被截断,直接输出。

类似地,可以通过 %10d 控制输出的数字宽度为 10,如下示例:

package main

import "fmt"

func main() {
    n := 123
    fmt.Printf("|%10d|\n", n)
}

输出:

|       123|

在格式字符串 %10d 中,数字 10 表示要输出的数字宽度为 10,如果数字位数不足 10,则会在左侧补空格。如果数字位数大于 10,则不会被截断,直接输出。

还可以使用负数控制左对齐:

package main

import "fmt"

func main() {
    s := "hello"
    fmt.Printf("|%-10s|\n", s)
}

输出:

|hello     |

在格式字符串 %-10s 中,数字 -10 表示要输出的字符串宽度为 10,左对齐输出。如果字符串长度不足 10,则会在右侧补空格,反之,则不会被截断,直接输出。