字符串格式化输出

148 阅读1分钟

缺省格式

格式化后输出 格式符 描述
[鸣人 佐助 小樱] %v 缺省格式
[]string{"鸣人", "佐助", "小樱"} %#v Go 语法打印
[]string %T 类型打印

整型

缩进, 进制类型, 正负符号

格式化后输出 格式符 描述
28 %d 十进制
+28 %+d 必须显示正负符号
␣␣28 %4d Pad 空格 (宽度为 4,右对齐)
28␣␣ %-4d Pad 空格 (宽度为 4,左对齐)
11100 %b 二进制
34 %o 八进制
1c %x 十六进制 (小写)

字符

Unicode letter

格式化后输出 格式符 描述
🥷 %c 字符
'🥷' %q 显示引号的字符
U+1F977 %U Unicode 编码
U+1F977 '🥷' %#U Unicode 编码和显示引号的字符

浮点型

缩进, 精度, 科学计数

格式化后输出 格式符 描述
3.141500e+00 %e 科学计数
3.141500 %f 十进制小数

字符串 或 []byte

格式化后输出 格式符 描述
Naruto %s 字符串原样输出
␣␣␣␣Naruto %10s 宽度为 10,右对齐

代码示例

package main

import (
    "fmt"
)

func main() {
    var byteSlice []byte = []byte{'A', 'B', 'C'}

    fmt.Printf("%T\n", byteSlice) // []uint8

    fmt.Printf("%v\n", byteSlice) // [65 66 67]

    fmt.Printf("%#v\n", byteSlice) // []byte{0x41, 0x42, 0x43}

    fmt.Printf("%c\n", byteSlice) // [A B C]

    fmt.Printf("%s\n", byteSlice) // ABC
}