Closed. This question does not meet
Stack Overflow guidelines。它当前不接受答案。
想要改善这个问题吗?更新问题,以便将其作为
on-topic用于堆栈溢出。
在10个月前关闭。
Improve this question
From chapter 4.2 of the The Rust Programming Language book:
When functions have references as parameters instead of the actual values, we won’t need to return the values in order to give back ownership, because we never had ownership.
We call having references as function parameters borrowing. As in real life, if a person owns something, you can borrow it from them. When you’re done, you have to give it back.
现在是哪一个?
不知道这是否重要;没有进一步阅读-只是我不知道从中得到什么。
我认为,当书中说返回值时,这意味着您不需要像使用可变借位那样显式地返回值,而正在编辑函数外部的变量,而不是将变量的所有权传递给函数然后返回函数完成后,将其添加到变量。例如:
fn main() {
let mut foo: String = String::from("Hello");
concat_string_borrow(&mut foo); // Mutable reference to string passed as argument
println!("{}", foo);
// "Hello world!"
}
fn concat_string_borrow(str: &mut String) {
str.push_str(" world!")
}
与返回值相比:
fn main() {
let mut foo: String = String::from("Hello");
foo = concat_string_return(foo); // Ownership of `foo` is given to function
println!("{}", foo);
// "Hello world!"
}
fn concat_string_return(mut str: String) -> String {
str.push_str(" world!");
return str
}
我是一名优秀的程序员,十分优秀!