0

当变量返回给调用者时,变量引用的数据会发生什么?当数据被破坏并且可能 Drop trait 被执行时?

4

2 回答 2

1

看起来你可以(为什么不呢?):

use std::io::File;

fn open_file(path: &Path) -> File {
  let file = File::open(path).unwrap() ;
  file
}


fn main() {
  let path = Path::new("hello.txt");
  let mut file = open_file(&path);

  let str =  file.read_to_string().unwrap();
  println!("Contents of {}:\n{}\n", path.display(), str);
}
于 2014-12-27T19:06:35.360 回答
1

写这个问题的时候,没看懂 Rust 中数据的生命周期。返回一个值会导致数据的所有权转移到调用者分配的变量。微不足道,但当我写这个问题时,我刚刚开始尝试这种语言:)

于 2015-03-31T04:55:55.743 回答