【发布时间】:2020-11-04 00:24:16
【问题描述】:
我正在通过官方 rust 网站上的the Rust book 并遇到following paragraph:
请注意,我们需要使
v1_iter可变:在迭代器上调用 next 方法会更改迭代器用来跟踪它在序列中的位置的内部状态。换句话说,此代码消耗或用完迭代器。每次调用 next 都会消耗迭代器中的一个项目。 当我们使用 for 循环时,我们不需要使v1_iter可变,因为循环获取了v1_iter的所有权并使其在幕后可变。
如果你注意到最后一行。它说 for 循环使可变变量在幕后不可变。如果可以,那么作为程序员的我们是否也可以这样做?
就像我知道这不安全,我们不应该那样做,只是想知道这是否可能。
【问题讨论】:
-
这句话并没有说,一个不可变的变量变成了一个可变的变量。它表示对象的所有权已转移。接收者是此后的唯一所有者,并且可以随心所欲地做任何事情。发生的事情类似于this。
-
好的,谢谢。我明白了。