使用FnOnce定义特征,但没有返回类型

时间:2016-01-25 06:05:06

标签: rust

我想定义一个类似的特征(以避免以后重复):

trait Callback: FnOnce() + Send {}

但是,编译器要求我定义FnOnce的输出:

  

错误:关联类型Output的值(来自特征   core::ops::FnOnce)必须指定[E0191]

我试图默认该值,但它警告这是不稳定的。

type Output = ();
  

错误:关联类型默认值不稳定

我可以将输出定义为表示“不返回”?普通的函数调用语法只是省略了它。

1 个答案:

答案 0 :(得分:5)

您可以通过明确返回类型来解决此问题:

trait Callback: FnOnce() -> () + Send {}

老实说,我不确定这是不是一个错误。