Каков объем возвращаемого значения в Rust?

Что происходит с данными, на которые ссылается переменная, когда они возвращаются вызывающей стороне? Когда данные уничтожены и, возможно, выпала черта Drop?

2 ответа

Похоже, вы можете (почему бы и нет?)

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);
}

Я не понял жизненный цикл данных в Rust, когда писал этот вопрос. Возврат значения приводит к перемещению владельца данных в переменную, назначенную вызывающей стороной. Тривиально, но я только начал экспериментировать с языком, когда писал вопрос:)

Другие вопросы по тегам