1
#![feature(array_methods)]
#![feature(fixed_size_array)]

fn main() {
    foo();
    bar();
}

fn foo<'a>() -> &'a [i32] {
    return &[1,2,3];
}

fn bar<'a>() -> &'a [i32] {
    return goob().as_slice();
}

fn goob() -> [i32; 3] {
    return [1,2,3];
}

为什么 foo 运行良好,但 bar 导致编译错误。两者都从临时创建的数组中返回一个切片。

4

0 回答 0