推荐 最新
Yourselffff

Rust闭包返回引用时的规则及与变量本身的关系是什么?

fn main() { let mut my_string = String::from("Hello, Rust!"); let mut my_s_ref = &mut my_string; let consume_string = || { my_s_ref }; consume_string(); // consume_string(); println!("闭包外部消费字符串: {}", my_string); } fn main() { let my_string = String::from("Hello, Rust!"); let my_s_ref = & my_string; let consume_string = || { // my_s_ref.push_str("string"); my_s_ref }; consume_string(); consume_string(); println!("闭包外部字符串: {}", my_string); } 以上两段代码,一个返回String的可变引用,一个返回不可变引用,为什么返回可变引用的闭包实现了FnOnce,返回不可变引用的闭包只实现了Fn呢? rust返回引用时,遵循什么规则?和my_s_ref本身有关还是my_string有关?

0
1
0
浏览量193