相关疑难解决方法(0)

返回位置的值是否总是在父堆栈框架或接收框中分配?

我试图了解从方法返回时结构的行为."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

6
推荐指数
1
解决办法
152
查看次数

标签 统计

rust ×1