我试图了解创建struct
个实例的最佳实践是什么.在C++中,我将把所有需要的东西传递给构造函数,如果不能创建struct
,则抛出异常.在rust中,我被告知创建一个返回Result
的方法.但这不是太多工作了吗?为什么不只是fail!()
?
此外,如果返回Result
是一种方式,这是否意味着所有 struct 都需要工厂?
我试图了解创建struct
个实例的最佳实践是什么.在C++中,我将把所有需要的东西传递给构造函数,如果不能创建struct
,则抛出异常.在rust中,我被告知创建一个返回Result
的方法.但这不是太多工作了吗?为什么不只是fail!()
?
此外,如果返回Result
是一种方式,这是否意味着所有 struct 都需要工厂?
YourStruct
的基本构造函数应该是名为YourStruct::new()
的静态方法(有关更多信息,请参阅Rust style guidelines).
对于返回类型,如果没有问题,请使用YourStruct
,或者如果使用fail!()
.如果构造函数失败只有一个明显的原因,请使用Option<YourStruct>
.如果调用方无法使用它,那么知道它的原因会很有帮助.fail!()
的问题在于,它没有给调用方再次try 的机会,也没有向用户传递好的错误消息,或者调用方可能想做的任何事情.在某些情况下,fail!()
可能没问题.