【发布时间】:2014-11-24 04:02:45
【问题描述】:
我现在正在试验 Rust,但我真的被各种各样的随机编译器错误绊倒了:
error: cannot move out of dereference of `&`-pointer
return list[idx];
^~~~~~~~~
有问题的 sn-p 转载如下。 list 是一个单词列表,其想法是从列表中返回一个在一定长度内(在 minLength 和 maxLength 之间)的随机单词。因此,我生成一个随机 uint 并使用模数将其限制为列表的大小。然后我想检查一下这个词的长度是否正确,如果它返回它。
显然这不是最有效的方法,但我只是想要一些简单的东西来满足练习的需要。
fn get_a_word(list: Vec<String>, minLength: uint, maxLength: uint) -> String {
loop {
let idx = rand::random::<uint>() % list.len();
if list[idx].len() > minLength && list[idx].len() < maxLength {
return list[idx];
}
}
}
我已经对该错误消息的含义进行了一些研究,但似乎每个人都说这是在您处理 Option<T> retvals 时出现的,而不是试图从集合中获取价值。
这可能是一个非常简单的问题,但为什么 Rust 不让你从集合/向量/数组中返回一个值?
【问题讨论】:
标签: rust