【发布时间】:2018-08-19 03:11:34
【问题描述】:
要定义一个返回 void 的函数,我的代码如下:
trait Handler {
fn on_message(&mut self, msg: String) -> Result<()> {
println!("on_message: {}", msg);
Ok(())
}
}
编译器告诉我这是错误的,因为 Result 应该始终有 2 个参数:
error[E0243]: wrong number of type arguments: expected 2, found 1
--> src/lib.rs:2:46
|
2 | fn on_message(&mut self, msg: String) -> Result<()> {
| ^^^^^^^^^^ expected 2 type arguments
这让我很困惑。不关心返回值的函数应该如何定义?
【问题讨论】:
-
你仍然应该添加一个错误作为第二个参数,因为你的函数可能仍然返回一个错误。
-
void 只是
()所以你可以只是on_message(&mut self, msg: String) -> ()或只是on_message(&mut self, msg: String)但函数应该已经返回一般的东西 -
@Stargateur 显然,OP 需要一些错误处理。
Result<(), ErrorType>对此很好。
标签: error-handling rust