所以我目前正在开始使用 Rust,并且正在阅读 Rust By Example。
做练习,边玩边玩代码。
但在 RBE Display函数描述中,它描述 Fmt::Display 比 Fmt::Debug 更“干净”。
这怎么样?从我看来,您必须做更多的工作,并编写更多的代码来尝试使 Fmt::Display 工作,而 Fmt::Debug 立即工作?
我是否误解了“清洁”代码是什么,或者这是一个错字?
小智 9
Display 的输出通常比 Debug 更清晰,而不是实现它的代码。Debug 的输出旨在用于调试目的,提供不那么模糊的输出。Display 的输出是面向用户的输出,因此它高度依赖于您的结构的含义,这就是它无法导出的原因。
例如,考虑以下代码:
fn main() {
// Note that \t is the TAB character
let output = "N\tO\tI\tC\tE";
println!("Debug: {:?}", output);
println!("Display: {}", output);
}
Run Code Online (Sandbox Code Playgroud)
它会输出:
Debug: "N\tO\tI\tC\tE"
Display: N O I C E
Run Code Online (Sandbox Code Playgroud)
在这种情况下,Debug 将显示 str(文本)包含的字符(因为它在调试时更有用),而 Display 将只打印它们。