格式化输出
打印操作由 std::fmt
里面所定义的一系列宏来处理,包括:
format!
:将格式化文本写到字符串。print!
:与format!
类似,但将文本输出到控制台(io::stdout)。println!
: 与print!
类似,但输出结果追加一个换行符。eprint!
:与print!
类似,但将文本输出到标准错误(io::stderr)。eprintln!
:与eprint!
类似,但输出结果追加一个换行符。
这些宏都以相同的做法解析文本。有个额外优点是格式化的正确性会在编译时检查。
std::fmt
包含多种 trait
(特质)来控制文字显示,其中重要的两种 trait 的基本形式如下:
fmt::Debug
:使用{:?}
标记。格式化文本以供调试使用。fmt::Display
:使用{}
标记。以更优雅和友好的风格来格式化文本。
上例使用了 fmt::Display
,因为标准库提供了那些类型的实现。若要打印自定义类型的文本,需要更多的步骤。
动手试一试
- 改正上面代码中的两个错误(见 “改正”),使它可以没有错误地运行。
- 再用一个
println!
宏,通过控制显示的小数位数来打印:Pi is roughly 3.142
(Pi 约等于 3.142)。为了达到练习目的,使用let pi = 3.141592
作为 Pi 的近似值(提示:设置小数位的显示格式可以参考文档std::fmt
)。