什么是创建结构实例的最佳实践?

时间:2014-08-12 21:39:47

标签: struct rust

我正在尝试了解创建struct实例的最佳做法。在C ++中,我将所需的一切传递给构造函数,如果无法创建struct则抛出异常。在生锈中,我被告知要创建一个返回Result的方法。但这不是太多的工作吗?为什么不只是fail!()

此外,如果返回Result是可行的方法,这是否意味着所有结构都需要工厂?

1 个答案:

答案 0 :(得分:7)

YourStruct的基本构造函数应该是名为YourStruct::new()的静态方法(有关详细信息,请参阅Rust style guidelines)。

对于返回类型,如果没有任何错误或使用YourStruct,请使用fail!()。如果构造函数失败只有一个明显的原因,请使用Option<YourStruct>。如果调用者知道失败原因,请使用Result<YourStruct, YourStructErr>fail!()的问题在于它不会让调用者有机会再次尝试,或者将错误消息传递给用户,或者调用者可能想做的其他任何事情。在某些情况下,fail!()可能没问题。