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

时间:2015-06-29 04:05:44

标签: rust

Display特征定义如下:

pub trait Display {
    fn fmt(&self, &mut Formatter) -> Result<(), Error>;
}

对我来说,最神秘的事情是类型声明()中的空括号Result<(), Error>。它是什么及其目的是什么?

1 个答案:

答案 0 :(得分:19)

()是一个空元组,一个简单的零大小类型(它不使用内存),只有一个值()。它也被称为单位类型。它在Result<(), E>的返回类型中的使用意味着“如果没有出错,则不会产生进一步的价值”。语义是重要的 - 调用是可以的。

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