我可以使用像传值方法这样的可变引用方法吗?

Can I use a mutable reference method like a value-passing one?

我可以使用像传值方法那样的可变引用方法吗?例如,我可以使用

o.mth(&mut self, ...)

作为

o.mth(self, ...)

这将使我能够 return 结果而不必担心 o 的生命周期。它可能涉及 move 闭包,或某种包装器?

对于上下文,我正在尝试使用 rust-csv 包 return 一个基于 CSV 记录的盒装迭代器,但迭代器的寿命不能超过 reader,Reader::records(&'t mut self) borrows mutably. Contrast this with BufRead::lines(self) ,它会消耗其 reader,因此可以 returned 而不会出现生命周期问题。

不,你不能。 self&self&mut self 方法之所以存在,是因为它们的行为不同,有不同的限制,允许不同的事情。

在这种情况下,您可能最终会尝试 to create an iterator that yields references to itself, which isn't allowed, or ,这也是不允许的。