我和防锈现在尝试“不能搬出取消引用'&'终场前的”,而我变得非常绊倒通过各种随机编译器错误的像这样的:与向量
error: cannot move out of dereference of `&`-pointer
return list[idx];
^~~~~~~~~
有关的代码片段转载如下。列表是一个单词列表,其思想是从列表中返回一个随机单词,该单词在一定长度内(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只是让你从集合/矢量/数组返回一个值?
真棒解释,非常感谢! – nameless912 2014-11-24 04:41:20