1
我想通過引用傳遞一個字符串,並操縱該函數的字符串:按引用傳遞一個字符串,並操作字符串
fn manipulate(s: &mut String) {
// do some string manipulation, like push
s.push('3'); // error: type `&mut collections::string::String`
// does not implement any method in scope named `push`
}
fn main() {
let mut s = "This is a testing string".to_string();
manipulate(&s);
println!("{}", s);
}
我看過的例子就borrowing和mutibility。也試過(*s).push('3')
,但得到
error: type `collections::string::String` does not implement any method in scope named `push`
我敢肯定有一些東西很明顯我失蹤或者更參考資料閱讀,但我不知道如何着手。謝謝!
更改'push_char' - >'push'必須是相對較新的,因爲我不記得上次使用String功能的那部分時遇到了它。你使用什麼版本(如果每天晚上,從什麼日期開始)? – delnan 2014-10-01 22:05:18
我使用的版本是'rustc 0.12.0-每晚(740905042 2014-09-29 23:52:21 +0000)' – EricC 2014-10-02 02:42:38
糾正我以前的評論。我在一臺不同的機器上試過相同的代碼,這個機器上每晚都會出現0.12.0(740905042 2014-09-29 23:52:21 +0000)'。結果的錯誤實際上是更多的信息:'錯誤:不能借用'&'-pointer作爲mutable'的不可改變的引用。基本上就像@IdolfHatler所描述的那樣! – EricC 2014-10-02 02:49:16