我试图了解从方法返回时结构的行为."Rust Book"的nightlies部分有一节说如果你使用了语法......
let x = box i_return_a_struct();
Run Code Online (Sandbox Code Playgroud)
..没有副本,因此不需要返回指针.但是当我开始玩它时,似乎box不需要它,除非你需要在堆上存在值.
#[derive(Debug)]
struct Dummy {
data: i64,
}
impl Drop for Dummy {
fn drop(&mut self) {
println!("{:?} is going out of scope", self as *const Dummy);
}
}
fn make_dummy(i: i64) -> Dummy {
Dummy { data: i }
}
fn main() {
{
let i = 15i32;
println!("{:?} is a variable on the stack frame", &i as *const i32);
let dummy1 = make_dummy(1);
println!("{:?} was returned and is being …Run Code Online (Sandbox Code Playgroud) rust ×1