Display
特征定义如下:
pub trait Display {
fn fmt(&self, &mut Formatter) -> Result<(), Error>;
}
对我来说,最神秘的事情是类型声明()
中的空括号Result<(), Error>
。它是什么及其目的是什么?
答案 0 :(得分:19)
()
是一个空元组,一个简单的零大小类型(它不使用内存),只有一个值()
。它也被称为单位类型。它在Result<(), E>
的返回类型中的使用意味着“如果没有出错,则不会产生进一步的价值”。语义是重要的 - 调用是可以的。
Result<(), ()>
作为返回类型也有意义 - 无论是成功还是失败,在任何一种情况下都无需报告。