1
我可以使用像传值类似的可变引用方法吗?例如,我可以用我可以使用可变参考方法吗?
o.mth(&mut self, ...)
为
o.mth(self, ...)
这将让我无需担心o
寿命返回结果。它可能涉及一个move
闭包,或某种包装?
对于上下文,我试图返回一个使用rust-csv包的CSV记录盒装迭代器,但迭代器不能超过读者,Reader::records(&'t mut self)
可变地借用。将其与BufRead::lines(self)
进行对比,这会消耗读者,因此可以在没有生命期问题的情况下返回。
相关:http://stackoverflow.com/q/36645452/155423,http://stackoverflow.com/q/30488928/155423,http://stackoverflow.com/q/38797960/155423 - 无论出于何种原因,每个人都想要返回一个CSV迭代器。 – Shepmaster
由于没有借用迭代器元素,它看起来像记录迭代器可能被重新编写,以便按值读取“R:Read”。由于'&mut R'实现了'Read where R:Read',它涵盖了两种情况。 – bluss
@bluss是的,我很惊讶。我认为他们会是字符串切片。尽管如此,这种变化仍然是一次突然的API变化,但并不是一个适应性很差的变化。 – Shepmaster