golang之格式化fmt.Printf

当使用fmt包打印一个数值时,我们可以用%d、%o或%x参数控制输出的进制格式,就像下面的例子:

o := 0666
fmt.Printf("%d %[1]o %#[1]o
", o) // "438 666 0666"
x := int64(0xdeadbeef)
fmt.Printf("%d %[1]x %#[1]x %#[1]X
", x)
// Output:
// 3735928559 deadbeef 0xdeadbeef 0XDEADBEEF

注意fmt的两个使用技巧。通常Printf格式化字符串包含多个%参数时将会包含对应相同数量的额外操作数,但是%之后的 [1] 副词告诉Printf函数再次使用第一个操作数。第二,%后的 # 副词告诉Printf在用%o、%x或%X输出时生成0、0x或0X前缀。
字符使用 %c  参数打印通过一对单引号直接包含对应字符,或者是用 %q  参数打印带单引号的字符:

ascii := 'a'
unicode := ''
newline := '
'
fmt.Printf("%d %[1]c %[1]q
", ascii) // "97 a 'a'"
fmt.Printf("%d %[1]c %[1]q
", unicode) // "22269 国 '国'"
fmt.Printf("%d %[1]q
", newline) // "10 '
'"

 用Printf函数的%g参数打印浮点数,将采用更紧凑的表示形式打印,并提供足够的精度,但是对应表格的数据,使用%e(带指数)或%f的形式打印可能更合适。所有的这三个打印形式都可以指定打印的宽度和控制打印精度。

for x := 0; x < 8; x++ {
  fmt.Printf("x = %d e^x = %8.3f
", x, math.Exp(float64(x)))
}
人生就是要不断折腾
原文地址:https://www.cnblogs.com/xiangxiaolin/p/11879253.html