的Display性状的定义如下:
pub trait Display {
fn fmt(&self, &mut Formatter) -> Result<(), Error>;
}
Run Code Online (Sandbox Code Playgroud)
对我来说最神秘的事情是()类型声明中的空括号集Result<(), Error>.它是什么,它的目的是什么?
Chr*_*gan 21
()是一个空元组,一个简单的零大小类型(它不使用内存)只有一个值,().它也被称为单位类型.它在返回类型中的使用Result<(), E>意味着"如果没有出错,就没有产生进一步的价值".语义是重要的 - 调用是好的.
Result<(), ()> 作为返回类型也会有意义 - 无论是成功还是失败,在任何一种情况下都无需报告.