我有一個關於Rust編程語言中的可變壽命的問題。鏽的生命期和調用成員函數
createTest
函數創建並返回r值引用。當它返回一個引用時,testValue
被銷燬。但test.print()不會導致崩潰。爲什麼?
(被稱爲靜態函數測試::打印功能?)
代碼
struct Test;
impl Drop for Test {
fn drop (&mut self) {
println("Dropped.");
}
}
impl Test {
fn print(&self) { println!("Print!"); }
}
fn createTest() -> &Test {
let testValue = &Test;
return testValue;
}
fn main() {
let test = createTest();
test.print();
println("Test");
}
結果
Dropped.
Print!
Test