生命周期是我必须在Rust代码中理解和使用的不可避免的事情吗?
为了阅读现有的Rust代码,您可能不需要了解生存期。借用检查器会理解它们,因此,如果编译通过,则它们是正确的,您只需查看代码的作用即可。
我对正确使用它们非常不安全。
要了解有关生命周期注释的最重要的事情是它们不做。相反,它们是向编译器表达引用之间关系的一种方式。例如,如果一个函数的输入和输出具有相同的生存期,则意味着该输出包含对该输入(或其一部分)的引用,因此不允许生存时间长于该输入。 “不正确地”使用它们意味着您正在告诉编译器一些关于引用寿命的信息,它可能被证明是不正确的-它将给您带来错误,因此没有什么不安全的!
我可以避免使用智能指针吗?
您可以选择避免完全使用引用,而在各处使用Rc
。您可能会错过Rust的一大功能:生存期和引用构成了最重要的零成本抽象之一,这使Rust既快速又安全。用Rust编写的代码没有人会尝试用C / C ++编写,因为人类永远不可能绝对确定他们没有引入内存错误。避免使用Rust引用支持智能指针通常会导致代码变慢,因为智能指针具有运行时开销。
许多API使用引用。为了使用这些API,您至少需要对正在发生的事情有一定的了解。
理解的最佳方法就是编写代码,并从什么有效和什么无效中获得直觉。 Rust的错误消息非常棒,将有助于形成这种直觉。
本文链接:https://www.f2er.com/3131501.html