diff --git a/listings/ch04-understanding-ownership/listing-04-04/src/main.rs b/listings/ch04-understanding-ownership/listing-04-04/src/main.rs index c59c77b..4f01fa4 100644 --- a/listings/ch04-understanding-ownership/listing-04-04/src/main.rs +++ b/listings/ch04-understanding-ownership/listing-04-04/src/main.rs @@ -1,30 +1,24 @@ fn main() { - let s1 = gives_ownership(); // gives_ownership moves its return - // value into s1 + let s1 = gives_ownership(); // gives_ownership 将它的返回值传递给s1 - let s2 = String::from("hello"); // s2 comes into scope + let s2 = String::from("hello"); // s2 进入作用域 - let s3 = takes_and_gives_back(s2); // s2 is moved into - // takes_and_gives_back, which also - // moves its return value into s3 -} // Here, s3 goes out of scope and is dropped. s2 was moved, so nothing - // happens. s1 goes out of scope and is dropped. + let s3 = takes_and_gives_back(s2); // s2 被传入takes_and_gives_back, + // 它的返回值又传递给 s3 +} // 此处,s3 移出作用域并被丢弃。s2 被 move ,所以无事发生 + // s1 移出作用域并被丢弃 -fn gives_ownership() -> String { // gives_ownership will move its - // return value into the function - // that calls it +fn gives_ownership() -> String { // gives_ownership 将会把返回值传入 + // 调用它的函数 - let some_string = String::from("yours"); // some_string comes into scope + let some_string = String::from("yours"); // some_string 进入作用域 - some_string // some_string is returned and - // moves out to the calling - // function + some_string // 返回 some_string 并将其移至调用函数 } // 该函数将传入字符串并返回该值 fn takes_and_gives_back(a_string: String) -> String { - // a_string comes into - // scope + // a_string 进入作用域 a_string // 返回 a_string 并移出给调用的函数 }