顺便说一下,这是针对当前 0.6 Rust 主干的,不确定确切的提交。
假设我想为每个字符串遍历一些字符串,并且我的闭包采用借用的字符串指针参数(&str)。我希望我的闭包将其参数添加到要返回的拥有字符串 ~[~str] 的拥有向量中。我对 Rust 的理解很薄弱,但我认为字符串是一种特殊情况,你不能用 * 取消引用它们,对吧?如何将我的字符串从 &str 获取到需要 ~str 的向量的 push 方法中?
这是一些无法编译的代码
fn read_all_lines() -> ~[~str] {
let mut result = ~[];
let reader = io::stdin();
let util = @reader as @io::ReaderUtil;
for util.each_line |line| {
result.push(line);
}
result
}
它无法编译,因为它推断结果的类型为 [&str],因为这就是我要推动的。更不用说它的生命周期是错误的,因为我正在向它添加一个生命周期较短的变量。
我意识到我可以使用 ReaderUtil 的 read_line() 方法,它返回一个 ~str。但这只是一个例子。
那么,如何从借来的字符串中获取拥有的字符串?还是我完全误解了。