【发布时间】:2016-12-28 17:25:54
【问题描述】:
我正在尝试将可变向量转换为 Rust 中的不可变向量。我认为这会起作用,但它不起作用:
let data = &mut vec![];
let x = data; // I thought x would now be an immutable reference
如何将可变引用转换为不可变绑定?
【问题讨论】:
-
这很有帮助...例如。考虑 rand crate 中的 'partial_shuffle' 函数,它接受一个可变引用,...没关系,因为它必须就地改组...但它也返回可变切片...这件事让我呆了 2 天,编译器一直抱怨我无法使用原始引用,因为它说“不能有不可变引用,因为已经作为可变引用借用了”....但是我找不到我这样做的地方,因为 dataset. partial_shuffle() 应该是唯一的,可变借用必须以函数结束。继续...
-
...回到第一行“它接受一个可变引用,...没关系,因为它必须就地改组...但它也返回可变切片”,我没有不关注这一点,所以在这种情况下,我现在不需要返回的随机切片是可变的,我可以将它们转换为不可变的...从中得出的结论:在阅读文档时,在 rust 中,专注于返回输入:)
标签: rust