Go 语言 Printf 函数和格式化动词详解

2023-12-03 20:49:24 浏览数 (2)

Printf()函数可以使用多种格式化动词对输出进行格式化。下面是可以与所有数据类型一起使用的一些通用格式化动词:

以下动词适用于所有数据类型:

动词

描述

%v

以默认格式打印值

%#v

以 Go 语法格式打印值

%T

打印值的类型

%%

打印百分号

示例:

代码语言:go复制
package main

import (
  "fmt"
)

func main() {
  var i = 15.5
  var txt = "Hello World!"

  fmt.Printf("%vn", i)
  fmt.Printf("%#vn", i)
  fmt.Printf("%v%%n", i)
  fmt.Printf("%Tn", i)

  fmt.Printf("%vn", txt)
  fmt.Printf("%#vn", txt)
  fmt.Printf("%Tn", txt)
}

结果:

代码语言:vim script复制
15.5
15.5
15.5%
float64
Hello World!
"Hello World!"
string

整数格式化动词

以下动词适用于整数数据类型:

动词

描述

%b

二进制

%d

十进制

% d

带符号的十进制

%o

八进制

%O

八进制(带 0o 前缀)

%x

十六进制(小写)

%X

十六进制(大写)

%#x

带 0x 前缀的十六进制

M

使用空格填充(宽度 4,右对齐)

%-4d

使用空格填充(宽度 4,左对齐)

d

使用零填充(宽度 4)

示例:

代码语言:go复制
package main

import (
  "fmt"
)

func main() {
  var i = 15

  fmt.Printf("%bn", i)
  fmt.Printf("%dn", i)
  fmt.Printf("% dn", i)
  fmt.Printf("%on", i)
  fmt.Printf("%On", i)
  fmt.Printf("%xn", i)
  fmt.Printf("%Xn", i)
  fmt.Printf("%#xn", i)
  fmt.Printf("Mn", i)
  fmt.Printf("%-4dn", i)
  fmt.Printf("dn", i)
}

结果:

代码语言:vim script复制
1111
15
 15
17
0o17
f
F
0xf
  15
15
0015

字符串格式化动词

以下动词适用于字符串数据类型:

动词

描述

%s

普通字符串打印

%q

双引号包裹的字符串打印

%8s

普通字符串打印(宽度 8,右对齐)

%-8s

普通字符串打印(宽度 8,左对齐)

%x

字节值的十六进制转储

% x

带空格的十六进制转储

示例:

代码语言:go复制
package main

import (
  "fmt"
)

func main() {
  var txt = "Hello"

  fmt.Printf("%sn", txt)
  fmt.Printf("%qn", txt)
  fmt.Printf("%8sn", txt)
  fmt.Printf("%-8sn", txt)
  fmt.Printf("%xn", txt)
  fmt.Printf("% xn", txt)
}

结果:

代码语言:vim script复制
Hello
"Hello"
   Hello
Hello
48656c6c6f
48 65 6c 6c 6f

布尔格式化动词

以下动词适用于布尔数据类型:

动词

描述

%t

布尔运算符的 true 或 false 格式(与 %v 相同)

示例:

代码语言:go复制
package main

import (
  "fmt"
)

func main() {
  var i = true
  var j = false

  fmt.Printf("%tn", i)
  fmt.Printf("%tn", j)
}

结果:

代码语言:vim script复制
true
false

浮点数格式化动词

以下动词适用于浮点数数据类型:

动词

描述

%e

科学计数法,指数为 'e'

%f

小数点,无指数部分

%.2f

默认宽度,精度为 2

%6.2f

宽度 6,精度 2

%g

必要时使用指数,仅保留必要的位数

示例:

代码语言:go复制
package main

import (
  "fmt"
)

func main() {
  var i = 3.141

  fmt.Printf("%en", i)
  fmt.Printf("%fn", i)
  fmt.Printf("%.2fn", i)
  fmt.Printf("%6.2fn", i)
  fmt.Printf("%gn", i)
}

结果:

代码语言:vim script复制
3.141000e 00
3.141000
3.14
  3.14
3.141

请注意,这个翻译可能不是完美的,因为语言之间的表达方式可能有细微的差异。

最后

看完如果觉得有帮助,欢迎 点赞、收藏、关注

0 人点赞