在泛型类型声明中使用时,空括号括号的含义是什么?

w.b*_*ian 18 rust

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<(), ()> 作为返回类型也会有意义 - 无论是成功还是失败,在任何一种情况下都无需报告.

  • 啊,有道理。似乎类似于 `void`。感谢您的解释! (4认同)