顺便说一下,这是针对当前的0.6 Rust trunk,不确定确切的提交版本。
假设我想要遍历一些字符串,并且我的闭包接受一个借用的字符串指针参数(&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。但这只是个例子。
那么,如何从借用的字符串中获取一个拥有的字符串?或者我完全误解了。