[Go]fmt Sprintf的格式占位符%

2021-04-09 15:07:14 浏览数 (1)

普通占位符

占位符

说明

举例

输出

%v

相应值的默认格式。

Printf("%v", people)

{zhangsan}

% v

打印结构体时,会添加字段名

Printf("% v", people)

{Name:zhangsan}

%#v

相应值的Go语法表示

Printf("#v", people)

main.Human{Name:"zhangsan"}

%T

相应值的类型的Go语法表示

Printf("%T", people)

main.Human

%%

字面上的百分号,并非值的占位符

Printf("%%")

%

整数占位符

占位符

说明

举例

输出

%b

二进制表示

Printf("%b", 5)

101

%c

相应Unicode码点所表示的字符

Printf("%c", 0x4E2D)

%d

十进制表示

Printf("%d", 0x12)

18

%o

八进制表示

Printf("%d", 10)

12

%q

单引号围绕的字符字面值,由Go语法安全地转义

Printf("%q", 0x4E2D)

'中'

%x

十六进制表示,字母形式为小写 a-f

Printf("%x", 13)

d

%X

十六进制表示,字母形式为大写 A-F

Printf("%x", 13)

D

%U

Unicode格式:U 1234,等同于 "U X"

Printf("%U", 0x4E2D)

U 4E2D

代码语言:javascript复制
p := point{1, 2}
    fmt.Printf("%vn", p) //{1,2}
    fmt.Printf("% vn", p) //{x:1 y:2}
    fmt.Printf("%#vn", p) //main.point{x:1, y:2}
    fmt.Printf("%Tn", p) // main.point
    fmt.Printf("%tn", true) //true
    fmt.Printf("%dn", 123) //123
    fmt.Printf("%bn", 14) //1110
    fmt.Printf("%cn", 33) //!
    fmt.Printf("%xn", 456) //1c8
    fmt.Printf("%fn", 78.9) //78.900000
    fmt.Printf("%en", 123400000.0) //1.234000e 08
    fmt.Printf("%En", 123400000.0) //1.234000E 08
    fmt.Printf("%sn", ""string"") //"string"
    fmt.Printf("%qn", ""string"")//""string""
    fmt.Printf("%xn", "hex this") //6865782074686973
    fmt.Printf("%pn", &p) //0xc0000b4010
    fmt.Printf("|m|m|n", 12, 345) //|    12|   345|
    fmt.Printf("|%6.2f|%6.2f|n", 1.2, 3.45) //|  1.20|  3.45|
    fmt.Printf("|%-6.2f|%-6.2f|n", 1.2, 3.45) //|1.20  |3.45  |
    fmt.Printf("|%6s|%6s|n", "foo", "b") //|   foo|     b|
    fmt.Printf("|%-6s|%-6s|n", "foo", "b") //|foo   |b     |
    s := fmt.Sprintf("a %s", "string") 
    fmt.Println(s) //a string
    fmt.Fprintf(os.Stderr, "an %sn", "error")//an error

0 人点赞