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

rui*_*eco 5 struct rust

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

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

Jer*_*ten 8

一个基本的构造函数YourStruct应该是一个名为的静态方法YourStruct::new()(有关详细信息,请参阅Rust样式指南).

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