2014-12-27 1 views
-1

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

+0

Пожалуйста, разместите код, в котором вы это пробовали, и это не сработало. Если вы не пробовали какой-либо код, почему вы думаете, что это может быть невозможно? – Shepmaster

+0

Мое первоначальное описание не помогло описать проблему. Это действительно не должно быть никакого примера кода, и я думаю, что это разумный вопрос (пост-обновление). – jarkko

+0

Можете ли вы подробнее рассказать о том, что вы подразумеваете под «областью»? Я по-прежнему считаю, что некоторые примеры кода (даже псевдокоды) помогут нам понять, что вы хотите знать. Насколько я могу судить, ответ на ваш вопрос: «Это зависит от того, что называется» (предполагая, что вы имеете в виду * возвращаемое значение функции *). – Shepmaster

ответ

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

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

Смежные вопросы