3 回答
TA贡献1863条经验 获得超2个赞
使用带有of和填充字符Printf的fmt 包中的函数:width60
import "fmt"
fmt.Printf("%06d", 12) // Prints to stdout '000012'
通过在格式说明符('动词')之前直接放置一个整数来设置宽度:
fmt.Printf("%d", 12) // Uses default width, prints '12'
fmt.Printf("%6d", 12) // Uses a width of 6 and left pads with spaces, prints ' 12'
Golang(和大多数其他语言)支持的唯一填充字符是空格和0:
fmt.Printf("%6d", 12) // Default padding is spaces, prints ' 12'
fmt.Printf("%06d", 12) // Change to 0 padding, prints '000012'
可以通过在前面加上减号来右对齐打印-:
fmt.Printf("%-6d", 12) // Padding right-justified, prints '12 '
请注意,对于浮点数,宽度包括整个格式字符串:
fmt.Printf("%06.1f", 12.0) // Prints '0012.0' (width is 6, precision is 1 digit)
需要注意的是,宽度也可以通过使用*而不是数字并将宽度作为int参数传递来以编程方式设置:
myWidth := 6
fmt.Printf("%0*d", myWidth, 12) // Prints '000012' as before
例如,如果您要打印的最大值仅在运行时已知(maxVal在以下示例中调用),这可能很有用:
myWidth := 1 + int(math.Log10(float64(maxVal)))
fmt.Printf("%*d", myWidth, nextVal)
最后,如果您不想打印到stdout但返回字符串,Sprintf也可以使用具有相同参数的fmt 包:
s := fmt.Sprintf("%06d", 12) // returns '000012' as a String
- 3 回答
- 0 关注
- 310 浏览
添加回答
举报