我试图了解创建struct实例的最佳实践是什么。在C++中,我将传递构造函数所需的所有内容,如果不能创建 >,则抛出一个异常。在rust中,我被告知创建一个返回struct的方法。但这不是太多的工作吗?为什么不直接Result?另外,如果返回fail!()是一种方法,这是否意味着所有结构都需要一个工厂? (adsbygoogle = window.adsbygoogle || []).push({}); 最佳答案 YourStruct的基本构造函数应该是名为YourStruct::new()的静态方法(有关更多信息,请参见Rust style guidelines)。对于返回类型,如果没有问题或使用YourStruct,请使用fail!()。如果构造函数失败的原因只有一个,请使用Option<YourStruct>。如果有助于呼叫方了解失败的原因,请使用Result<YourStruct, YourStructErr>。fail!()的问题是它没有给调用者再次尝试的机会,也没有向用户返回一条好的错误消息,或者调用者可能想做的任何事情。在某些情况下,fail!()可能没问题。 (adsbygoogle = window.adsbygoogle || []).push({}); 07-25 20:26